我有一个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