在这里,我需要隐藏电话号码、电子邮件、出生日期、周年日期和其他标签,以防这些字段没有值。我怎样才能做到这一点?
问问题
949 次
3 回答
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]
.
于 2013-06-15T06:20:04.843 回答
1
您可以做的只是隐藏UILabel's
如果NSStrings
您将它们放入的值是NULL
/ nil
。
NSString *labelString;
if([labelString length]>0)
{
}
else
Label.hidden = YES;
于 2013-06-15T06:14:47.890 回答
1
通过将标签放在表格的行中,使用 UITableView 来执行此操作可能是一个更好的主意。如果标签为空,您可以删除表格行,iOS 会为您动态调整表格高度。
于 2013-06-15T06:32:00.273 回答