我想为图表显示的表格视图单元格添加水平填充。
我创建了一个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个像素。我认为这段代码应该达到我的目标,但事实并非如此。视图在模拟器中没有变化,就像我没有写任何代码一样。
我如何实现目标?
答案 0 :(得分:6)
根据以下帖子尝试覆盖UITableViewCell中的-setFrame方法:
How to set the width of a cell in a UITableView in grouped style
答案 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);