【问题标题】:How to change position of label according to my example?如何根据我的示例更改标签的位置?
【发布时间】:2017-12-18 14:13:30
【问题描述】:

查看下图,

显示“无记录”标签。

我想改变它的位置,即我想向上移动一点,所以当 uitableview 加载时它会隐藏。

当我创建项目时,它工作正常。在我为排序和过滤添加新视图(新导航)后,标签位置更改为向下,现在它没有隐藏在加载器后面。

为此编写的代码是,

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

    NSInteger numOfSections = 0;
    if ([_mutableArray count]==0)
    {
        UILabel *noDataLabel         = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, tableView.bounds.size.height)];
        noDataLabel.text             =  NSLocalizedString(@"No Records..!!!",nil);
        noDataLabel.textColor        = [UIColor blackColor];
        noDataLabel.textAlignment    = NSTextAlignmentCenter;
        tableView.backgroundView = noDataLabel;
        tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

    }
    else
    {
        tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
        numOfSections                = 1;
        tableView.backgroundView = nil;
    }

    return numOfSections;

}

有没有办法根据我们的选择调整标签??

【问题讨论】:

  • 在加载时隐藏标签更简单。
  • 在获取数据之前不要设置数据源,或者调用reload data。

标签: ios objective-c uitableview position uilabel


【解决方案1】:

改变你 noDataLabel 的 y 位置,如下代码所示,我在下面的代码中添加了 75 检查:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

    NSInteger numOfSections = 0;
    if ([_mutableArray count]==0)
    {
        UILabel *noDataLabel         = [[UILabel alloc] initWithFrame:CGRectMake(0, 75, tableView.bounds.size.width, tableView.bounds.size.height)];
        noDataLabel.text             =  NSLocalizedString(@"No Records..!!!",nil);
        noDataLabel.textColor        = [UIColor blackColor];
        noDataLabel.textAlignment    = NSTextAlignmentCenter;
        tableView.backgroundView = noDataLabel;
        tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

    }
    else
    {
        tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
        numOfSections                = 1;
        tableView.backgroundView = nil;
    }

    return numOfSections;

}

您可以根据自己的说服力更改 y 位置。

如果你想在加载指示器上方显示你的标签,你也可以设置为减号(-75)。

【讨论】:

  • 我改变了位置,即设置y = 75或-75,它没有改变位置
  • @NikitaPatil 你想改变标签位置吗?
  • 哈。我想改变标签的位置。它的当前位置是 tableview 的中心。我想稍微改变一下。
  • 我以编程方式添加了该标签以显示在这种情况下发现的“无记录”,当我的表格视图中没有数据时,它将显示该标签。如果有数据,它将显示。但是现在发生的情况是,当数据来自 json 数据时,加载器正在加载,并且该标签在后台显示几秒钟,同时在表格视图中显示详细信息。这正在发生
【解决方案2】:
UILabel *noDataLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, tableView.bounds.size.height)];

这意味着你的标签的大小等于 tableView 的大小,所以你可以用这个代码来操作你的标签

CGRectMake(0, -10, tableView.bounds.size.width, tableView.bounds.size.height) //example, this will move label

但不推荐这种解决方案,加载时尽量隐藏标签,完成后显示。

【讨论】:

  • 你的第一点是正确的,你修改的代码,即如果 y=-10,你改变了位置。它没有改变它的立场。它仍然显示相同的位置
  • 我以编程方式添加了该标签以显示在这种情况下发现的“无记录”,当我的表格视图中没有数据时,它将显示该标签。如果有数据,它将显示。但是现在发生的情况是,当数据来自 json 数据时,加载器正在加载,并且该标签在后台显示几秒钟,同时在表格视图中显示详细信息。这正在发生。
  • 抱歉回复晚了,请尝试设置 CGRectMake(0, -10, tableView.bounds.size.width, 50) 并说它移动了吗?我认为它实际上巨大的高度可能会导致问题......
猜你喜欢
  • 1970-01-01
  • 2017-02-17
  • 1970-01-01
  • 1970-01-01
  • 2017-09-06
  • 1970-01-01
  • 1970-01-01
  • 2021-11-05
  • 1970-01-01
相关资源
最近更新 更多