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

ios - UITableViewCell 中的大小类

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

在我的 iOS 8 应用程序中,我有一个自定义 UITableViewCell,它是使用自动布局在 .xib 文件中定义的。我已经设置了 UITableView 以便它使用自调整大小的单元格,这一切都很好。

在我的单元格的 .xib 文件中,我设计了“Any x Any”大小类,它可以工作。我还想为“Compact x Any”尺寸类提供不同的设计,所以我将该布局添加到我的 .xib 中。

当我在 iPhone 设备(真实设备或模拟器)上运行应用程序时,我发现单元格的大小总是像使用我的“Any x Any”布局一样,但单元格的内容总是像它使用我的“Compact x Any”尺寸类。无论方向如何,都会发生这种情况。

在 iPad 设备(真实或模拟器)上,它总是使用“Any x Any”布局来确定大小和布局,我认为这是正确的。

有没有其他人试过这个并让它在 iPhone 上工作?感觉我正在尝试做的事情不应该是一个不寻常的要求。

总而言之,我认为布局在所有设备上都正确发生,但自调整单元逻辑似乎不尊重它所在的大小类。



Best Answer-推荐答案


这似乎是一个已知的错误,在这里描述:rdar://17799811 .

解决方法是在我的 View Controller 的 viewDidAppear 方法中调用 tableView.reloadData()。它确实有效,但是有一个丑陋的重绘,您会在以正确的大小重绘之前暂时看到压扁的 View 内容。

此外,在 iPhone 6 Plus 上,当您将方向从纵向更改为横向时,垂直尺寸类别会从紧凑变为常规,因此我还需要在这种情况下重新绘制。我可能会捕捉到方向变化,但相反(我认为这是更“正确”的方法)我选择在我的 View Controller 中覆盖较新的 traitCollectionDidChange 方法。我只是在那里调用 tableView.reloadData() 。在这种情况下,变化非常顺利,我对此很满意。当表格 View 首次显示时,这只是最初的丑陋重绘让我感到厌烦。

更新:我发现将我的一个垂直约束的优先级放宽到 999 使重绘变得不那么难看。单元格的高度仍然变化很大,但至少内容没有改变大小。

关于ios - UITableViewCell 中的大小类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26277492/

回复

使用道具 举报

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

本版积分规则

关注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