我正在尝试将UITableView放置在应用程序的左侧,整个高度,但只使用可用宽度的1/3,代码如下:
class ViewController: UIViewController {
var tableController: UITableViewController?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tableController = UITableViewController();
addChildViewController(tableController!)
self.view.addSubview(tableController!.view)
tableController!.didMove(toParentViewController: self)
}
override func viewDidLayoutSubviews() {
tableController!.view.backgroundColor = UIColor.red
tableController!.view.frame = CGRect(
x: 0,
y: 0,
width: view.bounds.width / 3,
height: view.bounds.height);
//tableController!.view.frame = view.bounds
}
}
它看起来像这样:
我不明白为什么线条没有正确地水平对齐,看起来像是在右边切割。
如果我通过取消注释最后一行给视图控制器的全宽度/高度,它看起来更好:
答案 0 :(得分:0)
您是否在父视图中正确约束TableView?您可以设置比例约束。请参阅有关主题的帖子:AutoLayout to keep view sizes proportional
对于iOS 11,将视图约束到布局指南会在IDE中触发警告。考虑将UI组件嵌入到另一个视图中,该视图使用自动调整大小的蒙版占用父视图的整个宽度。请参阅此处的主题:Xcode Auto Layout Resizing Issue