• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iOS 9 多行标签在集合可重用标题 View 中具有自动布局功能不起作用

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:28:26 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

iOS 8.4:

Multi-line label works in iOS8.4

在 iOS 9 上完全相同的代码:

Multi-line label doesn't work in iOS9

如您所见,在 iOS 8.4 上运行完全相同的代码会产生与 iOS 9 不同的结果。

在 iOS 9 上,第二行在第一次加载 View 时显示片刻,然后缩回到其单行状态。这个 View 是一个Header Collection Reusable View

我尝试删除标题 View 中的所有其他 View 和不相关的约束,同时只留下有问题的标签(带有 3 个约束),但仍然产生类似的结果,因此它不会由 View 中的其他约束引起。 All other views removed, still same results

想知道是否有其他人遇到这种情况并知道解决方案?

编辑 1:

UILabel 的配置:

Attributes Layouts

编辑 2:

我在这里创建了一个演示项目:https://github.com/v-ken/TestMultilineUILabeliOS9 .我将问题的根源定位为 reloadData。当它被调用时,UILabel 缩回到一行。

编辑 3:

上面的演示 GIT 存储库现已更新为修复。



Best Answer-推荐答案


最终通过在 UIView 中设置 UILabelpreferredMaxLayoutWidth 使其适用于 iOS 9。

- (void)layoutSubviews {
    [super layoutSubviews];
    myLabel.preferredMaxLayoutWidth = myLabel.frame.size.width;
}

或者,如果您使用的是 UIViewController:

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    myLabel.preferredMaxLayoutWidth = myLabel.frame.size.width;
    [self.view layoutIfNeeded];
}

引用:

https://stackoverflow.com/a/20287811/2491738

关于iOS 9 多行标签在集合可重用标题 View 中具有自动布局功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33212315/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap