tableview最大宽度约束

时间:2017-06-06 20:03:18

标签: swift xcode tableview

我试图在故事板中的默认tableview控制器内的tableview上设置最大宽度。由于某些原因,我无法设置< =宽度约束,因为它在xcode中显示为灰色。

我只是在我的视图中创建一个自定义的tableview,但我已经配置了一些不会在没有工作的情况下以滚动方式工作的东西。

我试图限制带图片的滚动Feed的宽度,因此ipad版本不是全屏。最大限度地说700或者什么,任何想法怎么做?

标准xcode tableview控制器 enter image description here

视图控制器中的自定义表视图 enter image description here

这种方法很有效,但它会跳到位并在侧面显示黑条。

override func viewDidAppear(_ animated: Bool) {
    let bounds = UIScreen.main.bounds
    if bounds.width > 414 {
        tableView.frame.size.width = CGFloat(600)
        tableView.center.x = bounds.size.width / 2
    }
}

2 个答案:

答案 0 :(得分:1)

您无法更改UITableViewController的UITableView的框架,因为它是控制器的根视图。如果你想让UITableView不占用全宽,那么你应该创建一个UIViewController并将UITableView添加到其中。如果你这样做,UIViewController将拥有自己的UIView,它是根。

你说你正在尝试设置你的应用程序,以便它不会占用仅700宽的iPad全屏。遗憾的是你不能这样做你的应用程序主窗口总是占用整个显示器,所以即使你有一个透明的根视图你也不会看到主要的iOS界面,因为你的主窗口会阻止它(我认为它会是黑色的。)

答案 1 :(得分:0)

我不确定你是否可以使用带有特殊控制器的故事板来设置宽度,我可能是错的。但你可以做tableView.widthAnchor.constraint(equalToConstant: 200).isActive = true并选择你想要的任何常量,然后在view.frame.width上使用一些条件逻辑来改变特定情况下的常量值