定位UITableViewCell

时间:2015-04-20 20:40:41

标签: ios xcode swift autolayout

晚上好,

我想将自定义tableview单元格与下一张图片相同:enter image description here

目前我有这个: enter image description here

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

有人有建议吗?

提前致谢!

2 个答案:

答案 0 :(得分:3)

您可以将所有内容放在UIView内,而不是直接将其添加到contentView。然后,您将此view的一些边距添加到contentView(从屏幕截图中,应该是左侧,右侧,顶部和底部)。

在父视图中嵌入所有视图的简便方法如下:选择所有子视图并转到Editor -> Embed In -> View

enter image description here

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

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

enter image description here

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

另一种选择是使用collectionView代替。在那里,您可以为单元格指定宽度和高度,因此获得该布局会更容易。

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


  

实施自定义选择以考虑填充

为此,您需要以下内容:

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

ImageView in storyboard

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

enter image description here enter image description here

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

@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];
}
  

快速实施

@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 :(得分:0)

您想使用嵌套视图:

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

查看2:内部视图1

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

使此视图的背景颜色为图片上左侧细垂直颜色条的颜色。

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

视图3:内部视图2.

将其设为白色并将其固定在顶部,底部和后缘的0个点上以查看2.

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

最后将你的文字等放在视图3中并将其展开。

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