如何在ios中移动标签

时间:2013-06-15 06:06:05

标签: iphone ios label uilabel

enter image description here

这里我需要隐藏电话号码,电子邮件,birthDate,周年纪念日和其他标签,以防这些字段没有值。我怎么能这样做?

3 个答案:

答案 0 :(得分:5)

从最简单的方法开始:

self.emailLabel.hidden = YES;

但您可能希望重新格式化视图的其他部分以适应空白区域。保持简单,你会做这样的事情:

self.phoneLabel.frame = CGRectOffset(self.phoneLabel.frame, 0, -self.emailLabel.bounds.size.height);

......等等以下任何事情。但你可以看到这将变得乏味。下一个也许是最好的选择是UITableView,它根据是否存在某些数据来调整它的节数。那会是这样的。使用模型的各个部分及其值来准备一个可变数组。

- (void)prepareModel {

    self.model = [NSMutableArray array];
    [self.model addObject:@[@"Name", @"Judy"]; // get "Judy" from your data

    if (/* model has email */) {
        [self.model addObject:@[@"Email", @"judy@gmail.com"];  // get email from your model
    }
    // and so on for conditional parts of your model
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return self.model.count;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

    return self.model[section][0];
}

并且cellForRow将使用self.model[section][1]初始化单元格。

答案 1 :(得分:1)

如果你所加入的UILabel's的值为NSStrings / NULL,则可以隐藏nil

NSString *labelString;
if([labelString length]>0)
{

}
else
Label.hidden = YES;

答案 2 :(得分:1)

使用UITableView执行此操作可能更好,方法是将标签放在表的行中。如果标签为空,则可以删除表格行,iOS将动态调整表格高度。