iOS8中使用AutoLayout的UICollectionView估算单元格大小时,sectionInset不起作用

5
我无法使我的UICollection在使用自动调整大小的单元格和estimatedItemSize时正确设置sectionInset.left边距。UICollectionView的单元格应该有相对固定的高度,但根据文本长度具有动态宽度。
启用自动调整大小后,它看起来像这样: enter image description here 禁用自动调整大小后,它看起来像这样: enter image description here 奇怪的是,sectionInset.right似乎是有效的,即边距添加在UICollectionView的右侧。
这是我的自定义UICollectionViewFlowLayout,我正在使用注释切换自尺寸模式。
class myFlow: UICollectionViewFlowLayout {
    required init(coder: NSCoder) {
    super.init(coder: coder)

        self.minimumLineSpacing = 1
//        self.estimatedItemSize = CGSize(width: 100, height: 35)
        self.sectionInset.left = 20
    }

我的自定义UICollectionView:
class myCV: UICollectionView {
    required init(coder decoder: NSCoder) {
        super.init(coder: decoder)

        self.layer.cornerRadius = 5.0
        self.layer.borderWidth = 1.0
        self.layer.borderColor = UIColor.lightGrayColor().CGColor

    }
}

我使用AutoLayout在UICollectionView单元格内部布置了标签:

enter image description here


我再次使用XCode 7 beta 1进行了测试,发现它可以正常工作,因此我认为这是由于Apple当前实现的自动调整大小单元格的UICollectionView存在错误。另一个问题是,当使用索引引用如“9223372036854775806”时,我遇到了随机越界异常的情况,经过追踪,发现这也是由于“estimatedItemSize”的原因。 - petard
我刚遇到了一个非常相似的错误。当我使用estimatedItemSize时,针对一个和你的视图非常相似的视图(UiCollectionView,水平模式),左插入被报告为右插入。 - alaeri
我也遇到了同样的问题,但是对于所有插图都是如此。我的问题有点严重,因为我需要为不同的部分设置不同的内容大小。实际上,如果我将内容插图设置为非0,0,0,0的值,甚至连集合视图本身都不会显示。即使是1,0,0,0... - Nuno Gonçalves
1个回答

0
我已经找到了一个解决方法 - 使用UIScrollViewcontentInset属性,它是UICollectionView的超类。严格来说这不是答案,但至少是问题的一种解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接