如何使UITableView始终适合半视图?

时间:2014-05-20 02:28:13

标签: ios

在我的应用中,我需要在其中一个视图的一半中UITableView(从半视图到底部)。问题是当我旋转设备时,tableview将其位置更改为始终遵循高度约束。

UITableView at portrait

enter image description here

横向UITableView(出现问题时) enter image description here

主要思想是将tableview缩小为始终适合视图的一半。

2 个答案:

答案 0 :(得分:0)

我假设您要在viewDidLoadinit中设置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]];