我有一张桌子。表有1个简单的自定义单元格。此单元格中只有标签。 这是cellForRow函数的代码:
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.myLabel.text = [NSString stringWithFormat:@"%ld", (long)indexPath.row];
cell.myLabel.frame = CGRectOffset(cell.myLabel.frame, 0, -20);
cell.myLabel.backgroundColor = [UIColor redColor];
return cell;
除此之外一切正常:
cell.myLabel.frame = CGRectOffset(cell.myLabel.frame, 0, -20);
标签不想动! 我在iOS8中发现了这个问题。
任何人请帮助:)
答案 0 :(得分:5)
好的,我在这里找到了答案https://stackoverflow.com/a/13539782/1928161:)
诀窍是添加
cell.myLabel.translatesAutoresizingMaskIntoConstraints=YES;
答案 1 :(得分:0)
在 MyCell.m 文件中添加 layoutSubviews 方法并更改 myLabel框架
- (void )layoutSubviews {
// always try to set frame in layoutSubviews
[super layoutSubviews];
self.myLabel.frame = CGRectOffset(self.myLabel.frame, 0, -20);
}
请修改您的代码
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier;
cellIdentifier = @"Cell";
MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[MyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
cell.myLabel.backgroundColor = [UIColor redColor];
}
cell.myLabel.text = [NSString stringWithFormat:@"%ld", (long)indexPath.row];
return cell;
}