2015-08-28 81 views
0

我試圖在按下按鈕後從左側獲取UITableView幻燈片。進入主視圖後,表格視圖不應該可見。我也希望表視圖佔據屏幕空間的一部分,而不是整個屏幕,否則我會嘗試製作一個單獨的視圖。如何讓UI TableView從屏幕開始?

我曾嘗試使用創建一個IBOutlet到的tableview和轉移在viewWillAppear中(位置):

optionsTableView.center.x -= view.bounds.width 

這沒有工作,我想是因爲約束系統的?

接着我試圖具有在前緣和後空間的限制用作佔位符,並且在viewDidLoad中()塊中加入:

//Replace placeholder constraint with a constraint of less than or equal to 0 
let leadingSpaceConstraint = NSLayoutConstraint(item: optionsTableView, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.LessThanOrEqual, toItem: view, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0) 
optionsTableView.addConstraint(leadingSpaceConstraint) 

//Add Trailing space constraint 
let trailingSpaceConstraint = NSLayoutConstraint(item: optionsTableView, attribute: NSLayoutAttribute.Trailing,relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0) 
optionsTableView.addConstraint(trailingSpaceConstraint) 

然而,這導致在加載視圖

2015-08-28 09:00:58.638 ShotMaker[25585:1566797] The view hierarchy is not prepared for the constraint: <NSLayoutConstraint:0x7fb033c48c30 H:|-(<=0)-[UITableView:0x7fb03506e800] (Names: '|':UIView:0x7fb033c56ca0)> 
When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled. Break on -[UIView(UIConstraintBasedLayout) _viewHierarchyUnpreparedForConstraint:] to debug. 
2015-08-28 09:00:58.639 ShotMaker[25585:1566797] View hierarchy unprepared for constraint. 

錯誤我不知道如何解決這個問題,所以任何幫助將不勝感激。或者如果你知道更好的方法來完成我想要做的事情,我很樂意聽到它。 (容器視圖?以編程的方式實現整個事物?巧妙的約束操作?) 另外,如果你知道爲什麼我第一次嘗試移動視圖的中心不起作用,那也是有用的信息。

最後,我還沒有試圖從左側開始幻燈片放映,因爲我剛剛從屏幕上開始掛斷電話,但隨時提供一個如何做到這一點的想法,因爲我真的沒有線索。

謝謝

P.S.這是我在堆棧交換中的第一個問題,所以如果我犯了任何格式錯誤,或者如果我可以提供更多信息以提供更多幫助,請讓我知道。

回答

0

有多種解決方案。

您可以在界面構建器中將其設置爲關閉屏幕,將左/前導約束鏈接到您的視圖控制器,並更新其常量以將表視圖移入到位。

可以容易地通過在一個動畫塊使用setNeedsLayout :-)

動畫表視圖中改變常數後,也可以更新viewDidLayoutSubviews表視圖的幀,表視圖的幀是在Interface Builder中使用約束時仍然在loadView和viewDidLoad中構造。