在我的应用中,我需要在其中一个视图的一半中UITableView
(从半视图到底部)。问题是当我旋转设备时,tableview将其位置更改为始终遵循高度约束。
UITableView at portrait
横向UITableView(出现问题时)
主要思想是将tableview缩小为始终适合视图的一半。
答案 0 :(得分:0)
我假设您要在viewDidLoad
或init
中设置tableView的框架;相反,在视图控制器中使用viewDidLayoutSubviews
来布局视图。每次视图控制器的边界发生变化时都会调用它,即使在旋转后也是如此:
-(void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
self.tableView.frame = CGRectMake(0, CGRectGetMidY(self.view.bounds), self.view.bounds.size.width, self.bounds.size.height / 2);
}
答案 1 :(得分:0)
self.tableView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addConstraint:[NSLayoutConstraint
constraintWithItem:self.tableView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeHeight
multiplier:0.5
constant:0]];