我正在尝试使用 iOS6 和自动布局将 UITableViews 嵌入 UIScrollView 中。
在 iOS 6 之前,我已经多次使用支柱和弹簧。我将表格视图添加为我的滚动视图的子视图,设置适当的框架和内容大小。它工作得很好,允许用户在表格视图之间滚动,但它不再适用于 iPhone 5 的 3.5 英寸屏幕和 4 英寸屏幕。
滚动视图的高度已正确调整大小,但子视图的高度未正确调整,并且在 4" 屏幕上它们下方有一个空白区域。
我在 IB 中创建了 ViewController,添加了 UIScrollView,然后以编程方式添加了表视图。
我找到了一种解决方法,它在-viewDidAppear
方法中设置框架和大小,但它会导致滚动视图闪烁,因为它在视图控制器呈现给用户后被修改。
我目前正在研究 NSLayoutConstraint,但目前没有取得多大成功。
有没有人遇到过同样的问题?
这是我当前的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
[self composeScrollView];
}
- (void)composeScrollView {
// set up scrollview
CGSize scrollViewContentSize = _scrollView.bounds.size;
scrollViewContentSize.width *= self.tableViewsList.count;
_scrollView.contentSize = scrollViewContentSize;
CGPoint contentOffset = _scrollView.bounds.origin;
contentOffset.x = _scrollView.bounds.size.width * self.tableIndex;
_scrollView.contentOffset = contentOffset;
_scrollView.directionalLockEnabled = YES;
for (int i = 0; i < self.tableViewsList.count; i++) {
CGRect tableViewRect = _scrollView.bounds;
tableViewRect.origin.x = tableViewRect.size.width *i;
UITableView *tableView = [[UITableView alloc] initWithFrame:tableViewRect style:UITableViewStylePlain];
tableView.delegate = self;
tableView.dataSource = self;
tableView.directionalLockEnabled = YES;
[_scrollView addSubview:tableView];
}
}
我在许多 iOS 应用程序中都看到过这种布局,所以我想这个解决方案可能对我们许多人有用。
我很想添加更明确的图片,但我没有足够的声誉。