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

ios - 在自定尺寸单元中按比例分布的 UIStackView

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

我在水平堆栈 View 中有两个标签。标签将 numberOfLines 设置为 0,因此它们将无限换行,垂直内容压缩阻力设置为 1000,因此它们将始终是它们的全高,水平压缩阻力设置为 250,因为我希望它们能够被缩小,并且 Content Hugging 设置为 1000(两个轴,因为我总是希望框架拥抱标签)。见:

Interface Builder screenshot

那么堆栈 View 是自调整单元格中的唯一项目。它被限制在顶部、底部、前导和尾随边距。堆栈 View 具有与标签相同的压缩阻力/内容拥抱。

在运行时,在我的 cellForRowAt indexPath 函数中,我将两个标签设置为不同长度的文本。而且由于我在其他地方读到过这里的布局可能是一个问题,所以我也这样做:

    cell.contentView.setNeedsLayout()
    cell.contentView.layoutIfNeeded()

但是,当我运行时,我最初看到了一些奇怪的行为。但是当我滚动时,事情开始看起来不错。似乎问题与细胞重用有关,但我不知道出了什么问题。

Simulator Screen Shots

在左侧 - 初始负载。请注意,值标签被完全切断,在第二个单元格中,比例间距似乎根本不起作用 - 与名称标签相比,值标签非常窄。

在右侧 - 我滚动到列表底部并返回顶部后的表格。这正是我所期望的:标签根据其内在内容大小按比例排列。但是我怎样才能在不滚动的情况下获得这种行为呢?



Best Answer-推荐答案


我相信您最大的问题是水平 StackView,您的宽度是根据堆叠的内容动态计算的。将 StackView 限制为特定宽度,根据您的宽度限制,更大的工作变成了如何计算内容的宽度。然后你会抛出无限的线条,这使得动态宽度更具挑战性,因为必须有一些阈值。

我建议为 FieldName 或 FieldValue 定义一个宽度,无论是常量还是基于父宽度百分比的相对宽度。我很确定你的拥抱和压缩只会互相争斗,因为 FieldName 有时可能比 FieldValue 长,有时恰恰相反。

您必须在某处设置硬限制。

关于ios - 在自定尺寸单元中按比例分布的 UIStackView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43351901/

回复

使用道具 举报

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

本版积分规则

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