定位 UITableViewCell

Position UITableViewCell

晚上好,

我想将我的自定义 tableview 单元格定位为与下一张图片相同的位置:

目前我有这个:

如何在 tableviewcell 上添加边距?我已经尝试过使用 separatorInsets 和 contentInsets 做不同的事情,但我得不到想要的结果。

有人有什么建议吗?

提前致谢!

您可以将所有内容放入 UIView,而不是直接将它们添加到 contentView。然后你从这个 viewcontentView 添加一些边距(从你的屏幕截图来看,应该是左、右、上和下)。

将所有视图嵌入父视图的简单方法如下:Select 所有子视图并转到 Editor -> Embed In -> View

确保将单元格的 contentView 的背景颜色设置为 clearColor

故事板应该是这样的(当然你有不止一个标签)

没有其他办法,使用 tableViews 使单元格的宽度比整个 tableView 更小。

另一种选择是使用 collectionView。在那里你可以为你的单元格指定宽度和高度,这样获得布局会更容易。

如果您需要更多帮助,请告诉我:)


Implementing custom selection to take the padding into account

为此,您需要以下内容:

您需要添加一个 UIImageView 作为具有填充的视图的子视图,如下所示:

从屏幕截图中可以看出,您需要为 UIImageView 设置 imagehighlightedImage。该图像将是一个简单的白色图像,highlightedImage 和具有您想要的背景颜色的图像。对我来说,我的照片也是这样的:

然后,在您的自定义 UITableViewCell class 中执行以下操作:

@interface MyTableViewCell()

@property (weak, nonatomic) IBOutlet UIImageView *highlightImageView;

@end

@implementation MyTableViewCell

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [self.highlightImageView setHighlighted:selected]; 
}

-(void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
    // this will change the color on your image
    [self.highlightImageView setHighlighted:highlighted];
}

Swift implementation

@IBOutlet weak var highlightedView: UIImageView!

override func setSelected(selected: Bool, animated: Bool) {
    highlightedView.highlighted = selected
}

override func setHighlighted(highlighted: Bool, animated: Bool) {
    highlightedView.highlighted = highlighted

}

如果您有任何问题,请告诉我。

您想使用嵌套视图:

视图 1:向固定到边缘 a 0 点的单元格的内容视图添加视图。使背景颜色为灰色。或使其透明并将 table 背景设置为灰色。

视图 2:内部视图 1

将其固定到视图 1 的边缘,前导和尾随边距与您的灰色边框相匹配。使用大小等于单元格之间灰色边距一半的顶部和底部引脚。

将此视图的背景颜色设置为您图片上左侧细垂直颜色条的颜色。

CTRL 拖动此视图以在您的代码中创建一个 IBOutlet,以便您可以逐个更改单元格中的颜色。

视图 3:内部视图 2。

将此设为白色并将其固定在顶部、底部和后缘的 0 点以查看 2。

将前缘固定到彩色垂直条的粗细。

最后将您的文本等放在视图 3 中并进行布局。

这将为您提供所需的布局。