iOS - 向tableview单元格添加水平填充

时间:2013-10-29 03:31:13

标签: ios uitableview

enter image description here

我想为图表显示的表格视图单元格添加水平填充。

我创建了一个UITableViewCell的子类,其宽度为314像素(屏幕宽度为320),并在initWithCoder方法中设置其框架:

[self customizeXPosition:self.profileImage];
[self customizeXPosition:self.birthdayLabel];
[self customizeXPosition:self.heightLabel];
[self customizeXPosition:self.weightLabel];

这是我的- (void)customizeXPosition:(UIView *)view

- (void)customizeXPosition:(UIView *)view {
    CGRect tmpRect = view.frame;
    tmpRect.origin.x += 3.0;
    view.frame = tmpRect;
}

自定义单元格小于屏幕,我将单元格中的每个元素向右移动了3个像素。我认为这段代码应该达到我的目标,但事实并非如此。视图在模拟器中没有变化,就像我没有写任何代码一样。

我如何实现目标?

3 个答案:

答案 0 :(得分:6)

根据以下帖子尝试覆盖UITableViewCell中的-setFrame方法:

How to set the width of a cell in a UITableView in grouped style

Swift version

答案 1 :(得分:3)

@faterpig在许多情况下都是正确的。但是,设置框架可能会破坏自动布局。

如果您的自动布局因设置框架而中断,您可以将UIView(宽度小于单元格contentView)添加到contentView并添加其他UI元素在视图上。

通过执行以下设置,您可以获得具有“水平填充”的单元格:

cell.backgroundColor = UIColor.clearColor()
cell.contentView.backgroundColor = UIColor.clearColor()

答案 2 :(得分:2)

这适用于在视图中填充内容:

yourView.layer.sublayerTransform = CATransform3DMakeTranslation(10,0,0);