【发布时间】:2014-02-12 12:10:00
【问题描述】:
我有一些奇怪的错误,我找不到解决方案。
我有使用自动布局的 UITableView。 (捕捉到所有 4 个侧面的父级)。 如果我旋转设备,它会正确渲染,但如果我尝试滚动它,它只会在屏幕左侧滚动。
红色方块是滚动区域。
我假设的下一个问题是当我尝试将 UIView 作为 subView 添加到 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
【问题讨论】:
-
你能给添加到表格视图中的视图赋予不同的颜色,看看它在横向模式下是如何呈现的吗?
-
是的,最初我将视图涂成红色,我只是没有复制那部分代码:D
-
添加的视图应该隐藏您的表格视图。我不知道你这样做的目的是什么。无论如何,您可能打算这样做。但我的建议是,您可以将主视图添加为 UITableView 的页脚视图。我认为它可以提供解决方案..
-
不,我需要将它添加为子视图
标签: ios uitableview rotation autolayout