gpt4 book ai didi

ios - 具有自动布局的 UIScrollView 中的 UITableViews

转载 作者:行者123 更新时间:2023-11-29 13:12:01 25 4
gpt4 key购买 nike

我正在尝试使用 iOS6 和自动布局将 UITableViews 嵌入到 UIScrollView 中。

我在 iOS 6 之前用支柱和 Spring 做过几次。我将表格 View 添加为我的 ScrollView 的 subview ,设置适当的框架和内容大小。它工作得很好,允许用户在表格 View 之间滚动,但它不再适用于 iPhone 5 的 3.5"屏幕和 4"屏幕。

ScrollView 的高度已正确调整大小,但 subview 的高度未正确调整,并且在 4"屏幕上它们下方有一个空白区域。

我在 IB 中创建了我的 ViewController,添加了一个 UIScrollView,然后我以编程方式添加了 TableView 。

我找到了一种变通方法,它在 -viewDidAppear 方法中设置框架和大小,但它会导致 ScrollView 闪烁,因为它是在将 View Controller 呈现给用户之后修改的。

我目前正在研究 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 应用程序中都看到过这种布局,所以我想这个解决方案对我们很多人都有用。

我很想添加图片以更明确,但我没有足够的声誉。

最佳答案

自动布局尚未在 viewDidLoad 中设置框架。在 viewDidAppear 中它有,所以现在一切正常。执行此类操作的最佳方法是 viewDidLayoutSubviewsviewWillLayoutSubviews

关于ios - 具有自动布局的 UIScrollView 中的 UITableViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17025777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com