gpt4 book ai didi

ios - UITextView 仅在 iPad 上无法正确调整大小

转载 作者:可可西里 更新时间:2023-11-01 03:32:14 28 4
gpt4 key购买 nike

我有一个静态 UITableView,其中 1 个部分有 3 行。每行包含一个应根据内容调整大小的 UITextView。每个 UITextView 对象都禁用滚动以强制其增长。每个都固定在单元格的 contentView 的所有 4 个边上,没有其他限制。

当我在 iPad(real 或 sim)上运行时,无论 UITextView 的内容如何,​​单元格都会调整为单行文本。当我在调试器中检查 View 层次结构时,我看到 UITextView 高度被设置为 27.5,即使内容 View 高度为 183.5。这似乎是 UITableViewCellContentView 上限制单元格高度的高度约束的结果。这不是我设置的约束。我的 TableView Controller 没有 heightForRow 或 cellForRow 方法,因为它是静态 TableView 并且对所有内容都使用自动布局。我不知道如何添加此约束。

enter image description here

这是在 iPod touch 上运行时在完全相同的点上具有完全相同的内容的完全相同的层次结构。请注意,这次 UITextView 高度和内容高度相同。在这种情况下,UITableViewCellContentView 的高度约束足够大以适应 UITextView 的高度。

enter image description here

在这两种情况下,这是执行和显示相同内容的相同来源。该内容包含带有回车符的短文本行,这就是为什么它在两种屏幕尺寸下都应调整为相同的内容尺寸。 UITextView 希望将其高度调整为 183.5,但在 iPad 上,单元格高度受到 iOS 生成的约束的不必要限制。

这是 viewDidLoad 的代码:

- (void)viewDidLoad {
[super viewDidLoad];

//shrink the uiswitch a little bit
self.displayRegexCharsSwitch.transform = CGAffineTransformMakeScale(0.70, 0.70);

//these next 2 lines set up the table to automatically resize based on content
self.tableView.estimatedRowHeight = 100.0f;
self.tableView.rowHeight = UITableViewAutomaticDimension;

//next line hides the blank cells
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

//these are needed on iPad or rows with accessory view don't resize
[self.tableView beginUpdates];
[self.tableView endUpdates];
}

同样,由于使用静态 TableView , TableView Controller 中没有 heightForRow 或 cellForRow。

我很困惑。如果内容相同且代码相同,为什么 UITextField 在 iPad 上报告的内容大小与在 iPod 上不同?从层次结构 View 可以清楚地看出,UITextField 内部知道其高度为 200,但 contentSize 返回的是 27.5。这是一个静态 TableView ,因此没有 heightForRow 方法和 cellForRow 方法。我依靠自动布局来管理所有布局 - 它在 iPad 上正确执行。

编辑

仅供引用 - 该设计完全基于任何/任何尺寸类别。

enter image description here

最佳答案

找到了!我将布局移植到一个新项目,以将问题与项目中发生的其他事情隔离开来。新项目没有出现布局问题。所以我比较了整体项目设置,我注意到新项目的部署目标是 iOS 8.3,而原始项目的部署目标是 iOS 6.0。当我将新项目部署目标设置为 iOS 6.0 时,出现了布局问题。 iOS 7.0 相同。但是,对于 iOS 8.0 及更高版本,问题消失了。是时候强制我的用户升级到 iOS 8 了。

enter image description here

关于ios - UITextView 仅在 iPad 上无法正确调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30717050/

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