uitableview的框架没有以编程方式改变

时间:2014-05-24 18:44:59

标签: ios objective-c uitableview uiviewcontroller

我的UITableView中有2 UIViewController。其中一个位于屏幕右侧,直到屏幕中心。另一个是从中心到左边。

用户可以通过按导航栏上的一个按钮隐藏右UITableview

我使用此代码使左UITableview全屏:

self.rightTableView.hidden= YES;
self.leftTable.frame= CGRectMake(0,
                                 self.dataTableView.frame.origin.y, 
                                 self.view.frame.size.width, 
                                 self.dataTableView.frame.size.height);

但它没有用。

我甚至将此代码放在viewdidloadviewDidAppear方法上,但框架不会更改。

2 个答案:

答案 0 :(得分:14)

尝试self.leftTable.translatesAutoresizingMaskIntoConstraints = YES,然后在运行时调用帧大小调整会自动转换为新约束。

但是,translatesAutoresizingMaskIntoConstraints也会根据视图的autoresizingMask添加新的约束。因此,请确保其他约束正常工作。

答案 1 :(得分:11)

使用自动布局时,修改框架无效。

相反,您应该修改约束。

您可以通过为约束创建出口并在界面构建器中进行连接来完成此操作。