加载视图后,在UINavigationController中更改UITableView的框架

时间:2013-02-19 00:02:38

标签: ios cocoa-touch uitableview

我正在尝试更改UIViewController内的两个UITableView的帧大小和位置,UIViewController是UINavigationController的rootviewcontroller。

我希望在用户操作时更改帧大小。我已经完成了所有设置,并且在用户的操作下执行以下代码:

CGRect firstTableFrame = [myTableView frame];
firstTableFrame.size.height = 290;  
[self.myTableView setFrame:firstTableFrame];
NSLog(@"%f",self.myTableView.frame.size.height);
[self.myTableView reloadData];

我可以确认NSLog输出290.但是,屏幕上没有任何内容发生变化。我在这里找到了一个答案,我认为可以为.xib文件解决它(取消选中autolayout),但是当我运行它时会导致我的.xib出现各种其他布局问题。

有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:0)

这是因为导航控制器有一个视图,用于保存要添加到其中的视图(表视图)。你必须适当调整该视图的大小

答案 1 :(得分:0)

我能够通过转到viewcontroller的.xib文件并在File Inspector窗格中取消选中“use autolayout”来解决此问题。如果取消选中,则会删除约束,并且我能够以编程方式调整框架的大小并重新定位。