gpt4 book ai didi

ios - 如何使用自动布局和大小类获取自定义 UITableviewCell 的宽度

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

我在 Storyboard 中使用 Any-Any Size 并为 UITableViewCell 定义以下约束,

  1. 引导空间到 SuperView -16.00px
  2. 到 SuperView 的尾随空格 -16.00px
  3. SuperView 的顶部空间 0.00px
  4. 到 SuperView 的底部空间 0.00px

当我打印 UITableViewCell 的框架时对于所有尺寸的 iphone,我得到框架尺寸

BookTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BookTableViewCellID"];
if (cell==nil) {
cell = [[BookTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"BookTableViewCellID"];
}
NSLog(@"TextView Cell Frame %@ ",NSStringFromCGRect( cell.contentView.frame));

以及输出,textView 单元格框架 {{0, 0}, {600, 44}}。这里的宽度是 600,与 Any-Any Size 的宽度相同。

但对于 iPhone5,我希望此处的宽度为 320。如何获取 UITableViewCell 的自动调整宽度。

最佳答案

我想我刚刚遇到了类似的问题,我想我已经解决了。

我的问题源于将最初在 XCode 4.7 for iOS 6 中设置的 Storyboard 转换为 xCode 7 for iOS 9(据我所知,这与 xCode 6 和 iOS 8 相同)。在 Simulated Metrics 中,一切都适用于旧 iPhone 特定尺寸,但在将所有内容转换为新自动布局的 600x600 尺寸时,我遇到了类似的问题。

我已正确调整所有 subview 的大小和间距,但我添加到自定义 UITableViewCells 的框架绘制不正确:左边距正确,高度也正确,但框架从屏幕右侧绘制出来.问题在于单元格中的所有 subview (一个 UILabel 和一个 UISwitch)都绘制在正确的位置。

这让我意识到,就像 OP 一样,我在 cellForRowAtIndexPath 中添加了绘制框架的子层。显然,在新的 Autolayout 中使用 600x600 大小的模板,UITableViewCell 的宽度在 dequeReusableCellWithIdentifier 之后尚未设置,但在稍后的设置中。这让我意识到我们可能不应该在 cellForRowAtIndexPath 中做任何涉及单元格尺寸的事情,而应该只是设置属性等等,除非我完全不理解这一点。

解决方案:实现 UITableViewCell 的子类并在 drawRect 中完成所有绘图。届时您的约束应该全部正确设置。

关于ios - 如何使用自动布局和大小类获取自定义 UITableviewCell 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29491252/

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