如何将UITableViewCell设置为整个屏幕宽度?

时间:2017-02-06 09:27:24

标签: swift uitableview swift3 tvos

说明

从下图中可以看出,这是一个专注的自定义UITableViewCell。

width not full

聚焦时,我将其contentView的背景颜色设置为黑色,如下所示:

//Where next is the next cell being focused.
next.contentView.backgroundColor = UIColor.black

此外,当我通过StoryBoard检查contentView的宽度时,它清楚地说明了" 1904"而不是预期的" 1920"。它变灰了,我无法修改它。

此时很清楚,contentView不占用屏幕的整个宽度。

我尝试过的事情:

我经历了多种不同的可能性。

我首先想到的是这与tableView的contentInset:

有关
//Inside my tableView controller
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0)

然后我认为这是tableCell的布局边距:

//Inside my custom UITableCell
self.layoutMargins = UIEdgeInsetsMake(0, 0, 0, 0)

然后我尝试更改UITableCell的contentView框架:

//Inside my custom UITableCell
self.contentView.frame = UIEdgeInsetsInsetRect(self.bounds, UIEdgeInsetsMake(0, 0, 0, 0))

我终于尝试了某种形式的self.frameself.contentView.frame

//In my UITableCell
self.contentView.frame = CGRect.init(x: self.bounds.maxX, y: self.bounds.maxY, width: self.bounds.width + 100, height: self.bounds.height)

问题:

如何将UITableViewCell设置为整个屏幕宽度?

截图:

https://i.stack.imgur.com/mAoUh.png

图片显示了我的tableviewcell的contentView的边距(它们与tableviewcells相同)

https://i.stack.imgur.com/20X74.png

图像显示我如何为tableView添加对齐约束。

(对于帖子来说太大了,链接的原因)

1 个答案:

答案 0 :(得分:3)

鉴于您正在使用UITableViewController,您几乎无法控制其行为,也无法控制控制器中tableView的约束。 我建议你在UIViewController中调整tableView,将你的约束设置为superview的前导和尾随,而不是它的边距。