无法在 IOS 6 中将 UILabel 添加到 UITableViewCell
Posted
技术标签:
【中文标题】无法在 IOS 6 中将 UILabel 添加到 UITableViewCell【英文标题】:Cannot add UILable to UITableViewCell in IOS6 【发布时间】:2014-02-10 09:45:15 【问题描述】:搜索没有给我任何关于这个问题的信息,所以我决定问一个提供一些代码的问题。 我需要在表格视图单元格中添加一个 UILabel。 这是启动单元格:
UITableViewCell *cell =[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellId];
然后,根据其他一些参数,单元格之一应包含 uiswitch 和 uilabel:
titleText = @"Some title";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"dd.MM.yyyy - HH:mm";
detailText = [formatter stringFromDate:_someDate];
UISwitch *reminderSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(200, 5, 60, 20)];
IF_ios6
reminderSwitch.frameX = 175;
reminderSwitch.on = NO;
[reminderSwitch addTarget:self action:@selector(reminderSwitchValueChanged:) forControlEvents:UIControlEventValueChanged];
[reminderSwitch setOnTintColor:[UIColor colorWithRed:78/255.0 green:169.0/255.0 blue:224/255.0 alpha:1.0]];
if (/*Some Condition*/)
UILabel *detail = [[UILabel alloc] initWithFrame:CGRectMake(100, 45, 150, 12)];
IF_IOS6
detail.frame = CGRectMake(0, 0, 100, 20);
detail.text = detailText;
detail.font = cell.detailTextLabel.font;
detail.textColor = cell.detailTextLabel.textColor;
detail.hidden = NO;
[cell addSubview:detail];
detailText = nil;
[cell addSubview:reminderSwitch];
此代码在 IOS7 中运行良好。 此代码在 IOS6 中不起作用。请告诉我我在哪里犯了错误。 提前谢谢你。
附:我只是无法为这种细胞创建一个新类。并且类似的代码(几乎相同)在 IOS6 中使用相同类型的 UITableViewCell 的其他控制器中运行良好。
【问题讨论】:
@evgeniy- ios6中是否进入if条件,条件是什么 您为什么要创建自定义标签。您应该使用默认的 tableviewcell 之一。简单的 "cell.detailTextLabel.text=@"your text""。 @evgeniy - 就像 Vivek 说的,它是否进入了 IF_IOS6 条件?如果是,检查它是初始化还是nil? 是的,它输入所有条件。我不能使用 cell.detailTextLabel 因为我需要将此标签移动到自定义位置。 【参考方案1】:改变
detail.font = cell.detailTextLabel.font;
到
detail.font = [UIFont boldSystemFontOfSize:18];
在 iOS6 单元格的文本标签上,字体大小为 0 px
【讨论】:
非常感谢。确实,问题出在字体上!以上是关于无法在 IOS 6 中将 UILabel 添加到 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 ios 6 中将 uibarbutton 样式的相机添加到 uitableviewcell
使用 NSLayoutConstraints 在 UITextView 中将 UILabel 居中