【问题标题】:XCode 6.1, Autolayout & Size Classes- issues on iOS 7 and not on iOS 8XCode 6.1, Autolayout & Size Classes - iOS 7 上的问题,而不是 iOS 8 上的问题
【发布时间】:2015-05-18 20:47:12
【问题描述】:

我遇到了一个奇怪的问题。 起初,当我将多个视图设置为相等的宽度和相等的前导\尾随约束时,它发生在一个应用程序上。在 iOS 8.x 上一切正常,但在 iOS 7.x 上我看到最后一个视图的尾随约束丢失了。

这没什么大不了的,但现在我遇到了一个大问题。 我正在开发一个新应用程序,其中一个功能是与用户聊天。 我设置了两个可能的表格单元格(传入消息和传出消息)。 每个单元格都包含一个 UITextView 来保存文本(它需要识别链接和电话号码)。 textView 的大小取决于内容文本,“气泡”的大小根据它的大小而变化。 同样,在 iOS 8.x 上一切正常!!!甜的! 再一次...... iOS 7.x 没能做到!没有明显的原因,文本被截断,单词消失,换行符不知从何而来。 我没有调整 textView 大小的实现......它都是基于自动布局的。

我该如何解决这个问题。我搜索了一个答案,但我什至不知道如何描述它。帮助?有人吗?

编辑:

昨天休息了一天:)感谢您的回复...

我有我设置的约束的图像... Constraints

现在,在我的 tableView 的 heightForRowAtIndexPath 中,我返回一个由消息对象计算的高度:

- (CGFloat)height {
    
    CGRect rect = [self.body boundingRectWithSize:CGSizeMake(210.0, CGFLOAT_MAX)
                                          options:NSStringDrawingUsesLineFragmentOrigin
                                       attributes:@{NSFontAttributeName:[UIFont fontWithName:@"OpenSans" size:15.0]}
                                          context:nil];
    return rect.size.height + kCellHeightDelta;
}

我不想使用别人的图书馆,不管它有多好。 我的客户对他想要的样子有他的愿望,并且宁愿花更多的时间在它上面,做适合项目的事情,而不是在不了解我缺少什么的情况下复制粘贴其他人的实现。 但我真的很感激。

【问题讨论】:

  • 请分享您的限制条件。
  • 你在计算iOS7中的单元格高度吗? iOS7 中没有单元格自动布局。您必须自己调整高度并在heightForRowAtIndexPath 中返回正确的尺寸。

标签: ios ios7 ios8 autolayout xcode6.1


【解决方案1】:

iOS7 中的单元格布局需要相当多的手才能使单元格高度正确。您必须使用屏幕外原型单元格计算高度,除非您通过其他机制知道确切高度,并在 heightForRowAtIndexPath 中返回此高度。

尺寸类还为此添加了一个额外的维度,因为使用 dequeueCellWithIdentifier 创建的原型单元格中没有定义尺寸类。

下面的讨论包含使用机制的链接,以及处理大小类别和手动单元格高度计算问题的巧妙解决方案。

Offscreen UITableViewCells (for size calculations) not respecting size class?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 2015-10-12
    • 2017-03-06
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    相关资源
    最近更新 更多