2017-06-06 241 views
0

我想在故事板中的默認tableview控制器內的tableview上設置最大寬度。我無法設置< =寬度約束,因爲它在xcode中變灰。tableview最大寬度約束

我只是在我的視圖中創建一個自定義tableview,但我配置了一些不會用這種方式工作的滾動沒有一些工作。

我試圖限制圖像的滾動飼料的寬度,所以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 
    } 
} 

回答

1

你不能改變UITableViewController的UITableView的框架因爲它是控制器的根視圖。如果你想要一個UITableView不佔用全部寬度,那麼你應該創建一個UIViewController並將UITableView添加到該寬度。如果你這樣做,UIViewController將有它自己的UIView,它是根。

你說你正試圖設置你的應用程序,使它不佔用700寬屏幕上的全屏幕。不幸的是,你不能這樣做,你的應用程序主窗口總是佔用整個顯示器,所以即使你有一個透明的根視圖,你也不會通過它看到主要的iOS界面,因爲你的主窗口會阻止它(我認爲它會是黑色的)。

+0

感謝您的回覆。這確實有道理,但看起來好像我可以瞄準一些。 tableView.frame.size.width = CGFloat(500)限制它,如果我可以以某種方式居中。我只希望桌子更小,其餘的應用程序可以是全尺寸。 – user3712837

+0

好你必須手動添加自己的UITableView如提供的UITableViewController必須佔用分配給該視圖控制器整個區域的一個案例。您有兩種選擇真的1)添加到的UITableView一個UIViewController(使用一個UITableViewController了沒有點)或2)與其他標準的UIViewController更換的UITableViewController,然後添加的UITableViewController作爲一個子視圖控制器。 –

+0

我會用選項一對它進行修改,謝謝你的建議。我確實讓它限制和居中,但是正如你所說的那樣,它會在側面打印黑條,並且你看到寬度轉移到位。 – user3712837

0

我不確定您是否可以使用帶有特殊控制器的故事板來設置寬度,我可能是錯的。但你可以做tableView.widthAnchor.constraint(equalToConstant: 200).isActive = true並選擇你想要的任何常數,然後在view.frame.width上使用一些條件邏輯來改變特定情況下的常量值。

+0

感謝您的回覆。我無法完成這項工作,但我正在以正確的方式重建它。 – user3712837