我有一個UIViewController,在頂部有一個UIButton,在它下面有一個UITableView。上面的按鈕是「歷史記錄」,我將其設置爲用戶可以打開或關閉的功能。我使用帶按鈕和表格的XIB設置視圖控制器。在UIView中移動UITableView不會持久
當'history'功能被禁用時,我想隱藏曆史記錄按鈕並相應地將UITableView的頂部向上移動,因此在視圖的頂部沒有空白區域。
當我在viewDidAppear中調用我的hideHistory:方法時,它隱藏了歷史記錄按鈕並將表移動到我的視圖頂部。
但是,在打開模式視圖(向表中添加一行)然後關閉模式視圖之後,表格已經移回原來的位置。將該呼叫添加到viewWillAppear:不起作用。
以下是hideHistory的代碼。關於爲什麼桌子重置到原始位置的任何想法?
在此先感謝!
- (void)hideHistory
{
[historyButton setHidden:YES] ;
// move our data table up accordingly
CGFloat newTop = historyButton.frame.origin.y ;
CGRect newFrame = CGRectMake(dataTable.frame.origin.x,
newTop,
dataTable.frame.size.width,
dataTable.frame.size.height);
[dataTable setFrame:newFrame] ;
[[self view] setNeedsLayout] ;
[dataTable setNeedsLayout] ;
}
你是說當模態被解除時,歷史按鈕被隱藏了嗎? – 2013-04-28 18:56:14
檢查這是否是自動佈局的效果(默認爲開啓)。如果是這樣,你可能想在'viewWillLayoutSubviews'中做類似的事情,或者以不同的方式解決它。 – 2013-04-28 19:06:41
@意義重大。謝謝!這是自動佈局被啓用。當我關閉它時,它就會起作用。對於我的大部分觀點,我已關閉自動佈局。不管出於什麼原因,我都沒有這個。再次感謝! – 2013-04-28 19:21:58