定位 UITableViewCell
Position UITableViewCell
晚上好,
我想将我的自定义 tableview 单元格定位为与下一张图片相同的位置:
目前我有这个:
如何在 tableviewcell 上添加边距?我已经尝试过使用 separatorInsets 和 contentInsets 做不同的事情,但我得不到想要的结果。
有人有什么建议吗?
提前致谢!
您可以将所有内容放入 UIView
,而不是直接将它们添加到 contentView
。然后你从这个 view
到 contentView
添加一些边距(从你的屏幕截图来看,应该是左、右、上和下)。
将所有视图嵌入父视图的简单方法如下:Select 所有子视图并转到 Editor -> Embed In -> View
确保将单元格的 contentView 的背景颜色设置为 clearColor
。
故事板应该是这样的(当然你有不止一个标签)
没有其他办法,使用 tableViews
使单元格的宽度比整个 tableView 更小。
另一种选择是使用 collectionView
。在那里你可以为你的单元格指定宽度和高度,这样获得布局会更容易。
如果您需要更多帮助,请告诉我:)
Implementing custom selection to take the padding into account
为此,您需要以下内容:
您需要添加一个 UIImageView
作为具有填充的视图的子视图,如下所示:
从屏幕截图中可以看出,您需要为 UIImageView
设置 image
和 highlightedImage
。该图像将是一个简单的白色图像,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 中并进行布局。
这将为您提供所需的布局。
晚上好,
我想将我的自定义 tableview 单元格定位为与下一张图片相同的位置:
目前我有这个:
如何在 tableviewcell 上添加边距?我已经尝试过使用 separatorInsets 和 contentInsets 做不同的事情,但我得不到想要的结果。
有人有什么建议吗?
提前致谢!
您可以将所有内容放入 UIView
,而不是直接将它们添加到 contentView
。然后你从这个 view
到 contentView
添加一些边距(从你的屏幕截图来看,应该是左、右、上和下)。
将所有视图嵌入父视图的简单方法如下:Select 所有子视图并转到 Editor -> Embed In -> View
确保将单元格的 contentView 的背景颜色设置为 clearColor
。
故事板应该是这样的(当然你有不止一个标签)
没有其他办法,使用 tableViews
使单元格的宽度比整个 tableView 更小。
另一种选择是使用 collectionView
。在那里你可以为你的单元格指定宽度和高度,这样获得布局会更容易。
如果您需要更多帮助,请告诉我:)
Implementing custom selection to take the padding into account
为此,您需要以下内容:
您需要添加一个 UIImageView
作为具有填充的视图的子视图,如下所示:
从屏幕截图中可以看出,您需要为 UIImageView
设置 image
和 highlightedImage
。该图像将是一个简单的白色图像,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 中并进行布局。
这将为您提供所需的布局。