我有一个表格视图,显示表格视图单元格和标题视图(搜索栏)。我希望表视图单元格的宽度<设备屏幕大小的<0.9> ,并且标题视图具有相同的大小。但是,这是不可能的,因为单元格和标题视图都包含在表视图中。
当我使用布局锚点约束时,所有内容都会调整大小(包括标题视图)。
self.tableView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
// here's the 0.9 multiplier
self.tableView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.9).isActive = true
self.tableView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
self.tableView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: 0).isActive = true
如何确保表视图标题与视图控制器的宽度相同,同时保持表视图宽度为主视图的0.9?
答案 0 :(得分:1)
最好不要尝试调整TableViewCell
或其contentView
的约束。但是,您可以将这两个视图设置为背景颜色为.clear
,然后使用您想要的约束将子视图添加到contentView
。
class CustomCell: UITableViewCell {
let smallerView = UIView()
override init(frame: CGRect) {
super.init(frame)
smallerView.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(smallerView)
smallerView.widthAnchor.contraint(equalTo: contentView.widthAnchor, multiplier: 0.9).isActive = true
smallerView.heightAnchor.contraint(equalTo: contentView.heightAnchor).isActive = true
}
}
答案 1 :(得分:1)
您的自定义单元格&#34;以&#34;开头ContentView,它使用表格视图的插图设置其宽度......
所以,如果你有一堆元素/对象要添加到内容视图......
您最好的选择可能是首先添加标准UIView
作为&#34;容器视图&#34; ...(只是我的命名)......
然后,设置约束&#34;包含视图&#34;为contentView的宽度的0.9 ...
您添加到&#34;包含视图&#34;的所有元素将被约束相对于它因此将全部保持在0.9宽度内......