gpt4 book ai didi

iphone - 如何以flowlayout的方式排列标签?

转载 作者:行者123 更新时间:2023-12-03 18:40:09 25 4
gpt4 key购买 nike

如何排列一些可变长度的 UILabels 和/或 UIButton?我只想将它们添加到 UITableViewCell 中,并且它们应该按从左到右的顺序排列,就像段落中的文本行一样。

我只发现使用“initWithFrame:...”创建具有固定大小和位置的标签的可能性。据我所知,Interface Builder 似乎也是如此。任何解决方案都值得赞赏,无论它是在代码中完成还是使用自定义单元 XIB 文件。

最佳答案

UITableViewCell , UILabel ,和UIButton都是 UIView 的子类以及 UIView 的文档说:

Layout and subview management

  • A view may contain zero or more subviews.
  • Each view defines its own default resizing behavior in relation to its parent view.
  • A view can manually change the size and position of its subviews as needed.

所以,这当然是可能的。

您可以使用 initWithFrame: 创建标签和按钮与参数 CGRectZero然后使用 setBounds: 调整它们的大小(基于文本或其他)或setFrame: (因为现在您只需设置 View 的大小)。然后,将这些 View 添加为单元格 contentView 的 subview 。 .

然后,在 UITableViewCell 的自定义子类中您可以通过覆盖 layoutSubviews: 的默认行为(不执行任何操作)来实现您的解决方案设置 subview 框架(即 CGRect)的原点字段,该字段将 subview 定位在单元格的内容 View 中(大小已设置)。您可能需要调用setNeedsLayout:layoutIfNeeded: .

这实际上是如何实现解决方案的粗略概述,因为遗漏了很多细节。例如,如果您根据 titleLabel 的文本调整按钮大小。您可能需要填充一些宽度和高度,否则按钮将是标签的大小并且看起来很奇怪。在 layoutSubviews:方法中可能有相当多的逻辑来按照您想要的方式布局标签和按钮(例如,如果单元格的所有 subview 都具有相同类型(例如所有标签),则会更简单),特别是。 subview 是否可以换行。

关于iphone - 如何以flowlayout的方式排列标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2951572/

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