gpt4 book ai didi

iphone - 在 iOS Storyboard中使用自动调整大小时,如何保证 UITableView 的单元格不会偏大

转载 作者:行者123 更新时间:2023-11-29 03:44:51 25 4
gpt4 key购买 nike

我有一个行高为 33、高度为 363 的表格 View 。在 iPhone 5 上显示时,我添加的表格单元格都没有被切断,它结束得很好,并且 ID 很好。自动调整大小如下所示:

Autosizing on iPhone 5 screensize

现在的问题是,当我在 3.5 英寸 iPhone 4 屏幕上尝试此操作时,最后一个表格单元格被切掉一半,因为高度现在为 275。我确实希望表格 View 缩小,但我希望高度保持为倍数共 33 条。

我可以想到两种可能的方法:1)在 Storyboard中将小桌面 View 设置为正确的高度(例如297),那么有没有办法通过 Storyboard设置自动调整大小的最大尺寸?

2) 以编程方式检测 iPhone 类型并在代码中进行调整。最安全的方法是什么?

最佳答案

您可以通过检测 iPhone 类型(如#2)在代码中完成此操作,或者如果您使用布局约束,则可以在代码中添加一个约束,将表格 View 的高度与屏幕的高度相关联。表格 View 高度可以表示为屏幕高度乘以乘数加上常数,因此如果您求解这两个方程,您将获得有效的乘数和常数的值:

568 * 乘数 + 常数 = 363 和 480 * 乘数 + 常数 = 297

如果你算出这个,它会给你乘数 = .75 和常数 = -63.0115

所以我使用的代码如下所示。我在计算的常量中添加了一个模糊因子 10,以处理 TableView 中的填充(我根据经验确定了这一点)。我在 IB 中创建了一个高度约束,并为其创建了一个 IBOutlet ——它的值是什么并不重要,因为我立即在 viewDidLoad 中将其删除(IB 中需要它,因此约束就足够了)。

- (void)viewDidLoad {
[super viewDidLoad];
self.tableView.dataSource = self;
self.tableView.delegate = self;
self.theData = @[@"One",@"Two",@"Three",@"Four",@"Five",@"Six",@"Seven",@"Eight",@"Nine",@"Ten",@"Eleven",@"Twelve"];
[self.tableView reloadData];
[self.tableView removeConstraint:self.tableHeight];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.tableView attribute:NSLayoutAttributeHeight relatedBy:0 toItem:self.view attribute:NSLayoutAttributeHeight multiplier:0.75 constant:-63.0115 + 10]];
}

关于iphone - 在 iOS Storyboard中使用自动调整大小时,如何保证 UITableView 的单元格不会偏大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17863540/

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