首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UICollectionView和AutoLayout

UICollectionView和AutoLayout
EN

Stack Overflow用户
提问于 2015-08-04 16:48:30
回答 1查看 2K关注 0票数 3

我正在尝试创建一个UICollectionView,其宽度/高度和坐标是使用AutoLayout (使用SnapKit)定义的。当使用默认的UICollectionView构造函数时,它会失败,原因如下:

原因:“必须使用非零布局参数初始化UICollectionView”

唯一允许传入布局的构造函数也需要frame,因此我尝试使用CGRectZero作为frame的值,如下所示:

代码语言:javascript
复制
collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: layout)

然后,我使用SnapKit设置如下所示的约束:

代码语言:javascript
复制
collectionView?.snp_makeConstraints { make -> Void in
        make.width.equalTo(view)
        make.height.equalTo(300)
        make.top.equalTo(someOtherView)
    }

但是,当这样做时,UICollectionView永远不会呈现。事实上,我根本没有看到数据源被调用。

对于如何在AutoLayout中使用UICollectionView,或者我可能做错了什么,有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-04 17:26:30

下面的代码对我来说很好,我有一个红色和空的集合视图。

Xcode 7 beta 4 - Swift 2.0 - AutoLayout syntax from iOS 9

代码语言:javascript
复制
override func viewDidLoad() {

    super.viewDidLoad()

    let collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: UICollectionViewLayout())
    collectionView.translatesAutoresizingMaskIntoConstraints = false
    collectionView.backgroundColor = UIColor.redColor()

    self.view.addSubview(collectionView)

    collectionView.widthAnchor.constraintEqualToAnchor(self.view.widthAnchor).active = true
    collectionView.heightAnchor.constraintEqualToConstant(300).active = true
    collectionView.topAnchor.constraintEqualToAnchor(self.view.topAnchor).active = true
}

我从未使用过SnapKit,但我确实知道它。我的代码中提供的语法几乎与您的示例中的语法相同。因此,这只是一条线索,说明SnapKit或您如何使用它有问题。

希望这能对你有所帮助。

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

https://stackoverflow.com/questions/31814943

复制
相关文章

相似问题

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