ios - 如何在 UICollectionViewCell 中有一个自动换行标签,其右锚点约束到单元格的右锚点?
问题描述
我正在制作一个自定义 UICollectionViewCell,在其中,我有一个可变长度的标签。我试图将标签限制在顶部、左侧和右侧的锚点上,这意味着它应该拉伸以适应这些但不能超出它们。但是,当我将右锚点设置在单元格的右侧时,而不是锚点的右侧被拉伸到或具有由单元格右侧确定的最大宽度,此约束会带来单元格的右侧锚点到标签的右侧锚点。
我该如何防止这种情况发生?
目前,我最初使用此功能设置单元格的大小:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: Feed.frame.width, height: 200)
}
这是标签的约束条件。
locationText.topAnchor.constraint(equalTo: locationIconImage.topAnchor, constant: 0).isActive = true
locationText.leftAnchor.constraint(equalTo: locationIconImage.rightAnchor, constant: 8).isActive = true
locationText.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -12).isActive = true
下面是保存集合视图的视图控制器是如何初始化的:
override func viewDidLoad() {
super.viewDidLoad()
Feed.dataSource = self
self.setUpFeed()
Feed.collectionViewLayout = {
let layout = UICollectionViewFlowLayout()
let width = Feed.frame.width
layout.estimatedItemSize = CGSize(width: width, height: 100)
return layout
}()
}
它看起来像什么:
在这里一切看起来都很好,单元格占据了屏幕的宽度,标签被限制在单元格上并环绕。
在这里,右锚约束将单元的右锚拉向自身。
解决方案
推荐阅读
- mongodb - 使用 gte 条件 MonggoDB 查询删除数组内的对象
- r - 当多行具有相同的日期戳时,如何根据日期在 R 中拆分数据框
- node.js - NodeJS 你可以将 GET 请求重定向到 POST 请求吗?
- jbpm - 如何在 JBPM 中更改项目的 persistence.xml 的默认值
- javascript - Puppeteer - 如何扩展 ElementHandle 以添加更多方法?
- react-native - React Native 录制视频并捕获 Speech to Text
- python - 请向我解释如何更好地编写代码
- javascript - 将表格数据塑造成层次结构
- python - 如何创建具有对数 x 轴和条形之间间隙的条形图?
- javascript - 让 nodemailer 使用不同的 gmail 帐户发送电子邮件