我有一些奇怪的错误,我找不到解决方案。UITableView调整自动布局旋转
我有UITableView使用自动布局。 (在所有4边对齐父母)。 如果我旋转设备,它会得到正确的渲染,但如果我尝试滚动它在屏幕左侧滚动。
红色广场上滚动区域。
我假设的下一个问题是,当我试图将UIView作为子视图添加到UITableView时,这个问题就与这个问题有关。
如果我添加:
CGRect frame = CGRectMake(0, 200, self.table.frame.size.width, 5);
UIView * mainView = [[UIView alloc]initWithFrame:frame];
mainView.backgroundColor = [UIColor redColor];
[self.table addSubview:mainView];
是好的,但如果我不喜欢:
UIView * mainView = [[UIView alloc]init];
mainView.backgroundColor = [UIColor redColor];
mainView.translatesAutoresizingMaskIntoConstraints = NO;
[self.table addSubview:mainView];
[self.table addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(200)-[mainView(20)]" options:NSLayoutFormatDirectionLeadingToTrailing metrics:nil views:NSDictionaryOfVariableBindings(_table, mainView)]];
[self.table addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[mainView]|" options:NSLayoutFormatDirectionLeadingToTrailing metrics:nil views:NSDictionaryOfVariableBindings(_table, mainView)]];
越来越呐错误:
*** Assertion failure in -[UITableView layoutSublayersOfLayer:], /SourceCache/UIKit/UIKit-2903.23/UIView.m:8540
你可以给你的视图添加不同的颜色,并在表格视图中添加它,看看它如何在横向模式下呈现? – jailani
是的,原来我画的是红色的视图,我只是没有复制那部分代码:D –
添加的视图应该隐藏你的表格视图。我不知道你用的是什么目的。无论如何,你可能打算这么做。但我的建议是,您可以将主视图添加为UITableView的页脚视图。我认为它可以给一个解决方案.. – jailani