首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CollectionView AutoResize标签不工作

CollectionView AutoResize标签不工作
EN

Stack Overflow用户
提问于 2018-07-20 10:01:18
回答 1查看 1.8K关注 0票数 0

我有一个带有标签的垂直集合视图,在我的流程布局中,我使用UICollectionViewFlowLayoutAutomaticSize来调整单元格大小,但是当我给标签指定很长的字符串时,label中的行数设置为0,这会给我带来错误。

误差

请检查委托返回的值。相关的 UICollectionViewFlowLayout实例是UICollectionViewFlowLayout,它附加到UICollectionView;frame = (0 88;375 690);clipsToBounds = YES;autoresize = RM+BM;gestureRecognizers = NSArray layer = CALayer;contentOffset:{0,0};contentSize:{375,2};adjustedContentInset:{0,0,0}>集合视图布局: UICollectionViewFlowLayout 在上设置一个符号断点,以便在调试器中捕捉到这一点。 没有定义UICollectionViewFlowLayout的行为,因为项目宽度必须小于UICollectionView的宽度减去节内的左和右值,减去内容嵌入的左和右值。

约束

代码语言:javascript
复制
let array = ["Hello", Array(repeating: "Hello", count: 100).joined(), "blah"]
// on viewDidLoad method
 if let flowLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
        flowLayout.estimatedItemSize = CGSize(width: 1, height: 1)
        flowLayout.itemSize = UICollectionViewFlowLayoutAutomaticSize
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-20 11:28:28

问题是,由于某种原因,UICollectionViewFlowLayout没有设置单元格的最大宽度,而且由于像您一样设置了约束,所以一个单元格或多个单元格的width大于collectionView的宽度。

下面是如何修复它,将width约束添加到UICollectionViewCell子类中的标签中,并将其设置为less than equal而不是equal

接下来,为该约束设置一个出口,以便以后可以设置该约束。

然后,在CollectionViewDataSource cellForItemAtIndexPath中,可以将宽度常数设置为小于CollectionView宽度减去添加的填充(在我的示例中,标签的左、右填充为20 + 20 )。

代码语言:javascript
复制
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "reuse", for: indexPath) as! CollectionViewCell

    cell.widthConstraint.constant = collectionView.bounds.size.width - 40
    //line above sets maximum width of label to be maximum the width of the collection view
    cell.label.text = array[indexPath.item]
    return cell
}

结果是如下所示的集合视图:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51440048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档