我已经使用init创建了一个自定义类:
if(self = [super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier]) {
}
因为我想在单元格的右侧添加一个蓝色的发短信标签,并在选择时向右移动,否则在突出显示时看起来很奇怪:
self.sizeTextLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.contentView.frame.size.width-110, 0.0, 100.0, 44.0)];
self.sizeTextLabel.textAlignment = NSTextAlignmentRight;
self.sizeTextLabel.backgroundColor = [UIColor whiteColor];
self.sizeTextLabel.textColor = [UIColor colorWithRed:81/255.0 green:102/255.0 blue:145/255.0 alpha:1.0];
self.sizeTextLabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleHeight;
[self.contentView addSubview:self.sizeTextLabel];
可能有更好的方法来做到这一点^
我想要做的是添加另一个实际上是另一个字幕行的标签,然后在使用heightForRowAtIndexpath方法创建单元格时增加行的高度。
问题:当我向内容视图添加新标签'row'时,它不会变高(默认视图会移到视图的中间)。如何在字幕视图下正确创建和定位?如果我要将第一个字幕改为多行,那么如果第二个标签知道该做什么就不错了。
我希望可可有相对的定位。或者我还没有找到它!
答案 0 :(得分:2)
您可以将详细文本标签设为多行,并将两个字符串添加到一个标签中。在这个例子中,我的数据在其字典中有三个键,主标签文本有“main”,两个字幕字符串有“detail1和”detail2“。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
NSDictionary *object = _objects[indexPath.row];
cell.textLabel.text = object[@"main"];
NSString *concat = [NSString stringWithFormat:@"%@\n%@",object[@"detail1"],object[@"detail2"]];
cell.detailTextLabel.numberOfLines = 2;
cell.detailTextLabel.text = concat;
return cell;
}
答案 1 :(得分:0)
您可以使用界面构建器创建自定义单元格,并使用它而不是UITableViewCell。
请检查:http://www.backslashtraining.com/blog/2012/3/10/ios-5-tip-of-the-week-custom-table-view-cells.html