我几乎尝试了所有东西,但我似乎无法将cell.textLabel属性向下移动一点点。我在下面附上了截图,我已经尝试了几乎所有我能找到的东西。
我已经尝试直接更改.frame属性,尝试修改是否通过使用“ - (void)tableView:(UITableView *)tableView willDisplayCell”方法“。我也尝试过分配自定义标签。我可以移动自定义标签,但它不会像原始textLabel那样进入单独的行。我只需要将图示的多行标签稍微移动一下。
感谢任何帮助!
答案 0 :(得分:22)
覆盖layoutSubviews
...
UITableViewCell
- (void)layoutSubviews {
[super layoutSubviews];
CGSize size = self.bounds.size;
CGRect frame = CGRectMake(4.0f, 4.0f, size.width, size.height);
self.textLabel.frame = frame;
self.textLabel.contentMode = UIViewContentModeScaleAspectFit;
}
或者您可以简单地创建自己的UILabel对象,并将其作为子视图添加到cell.contentView。
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(4, 4, 30, 30)];
[cell.contentView addSubview:label];
[label release];
答案 1 :(得分:16)
执行此操作的唯一方法是使用UITableViewCell
子类并覆盖-layoutSubviews
。在此方法中,您需要调用[super layoutSubviews]
,然后对标签执行任何帧调整。
答案 2 :(得分:1)
我最后在字符串的开头添加了一个\ n。不幸的是,我无法继续工作。
答案 3 :(得分:0)
- (void)layoutSubviews {
[super layoutSubviews];
CGSize size = self.bounds.size;
CGRect frame = CGRectMake(4.0f, 4.0f, size.width, size.height);
self.textLabel.frame = frame;
self.textLabel.textAlignment = NSTextAlignmentCenter;
}