我尝试在viewDidLoad:
之后以编程方式将帧大小设置为我的表视图[_tableView setFrame:CGRectMake(0, topHeight,
[[UIScreen mainScreen] bounds].size.width,
[[UIScreen mainScreen] bounds].size.height - topHeight)];
默认大小为200x200,原点为Y 100:
场景层次结构:
UITableView的实现显示调用setFrame时:
@implementation MainTableView
- (void)setFrame:(CGRect)frame {
NSLog(@"setFrame: %f %f", frame.size.width, frame.size.height);
[super setFrame:frame];
}
@end
一切正常,但是当我按下任何单元格而不打印来自setFrame
的日志消息时,表格的框架会调整为默认值。小解释视频:http://youtu.be/JUW_rHvCS2I
我不明白为什么我的表格大小在单击格式后变为默认值(200x200)。即使我尝试在viewWillAppear
内设置大小(从单元格详细信息视图返回后),它也不起作用。
有什么想法吗?
答案 0 :(得分:1)
我无法理解为什么你的tableView没有正确调整大小,因为你还没有提供很多代码来环顾四周。虽然我建议为tableView设置一些约束或调整规则大小,可能是这样的:
http://i.imgur.com/N9fvvIB.png(如果不使用自动布局)
http://i.imgur.com/3Uz8e5e.png(如果使用自动布局)
现在如果你真的只需要通过代码完成这项工作,我建议在设置之前和之后抛出一些包含tableView框架宽度和高度的NSLog。
答案 1 :(得分:0)
尝试_tableView.translatesAutoresizingMaskIntoConstraints = NO。