集合视图自动布局

Posted

技术标签:

【中文标题】集合视图自动布局【英文标题】:Collection view auto layout 【发布时间】:2014-10-02 10:35:04 【问题描述】:

我正在制作一个在 iPad 上显示多个图像的项目,我的问题是我无法使 UICollectionView 调整到屏幕大小,并且当它旋转到横向时,自动布局不起作用,我真的很迷茫,非常欢迎任何帮助。

这是我在 Git 上制作的一个简单示例:Git project link

这里有一些代码:

class ViewController: UIViewController 

    @IBOutlet weak var mainMenuCollectionView: UICollectionView!
    var images = ["220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg","220.jpg"]

    override func viewDidLoad() 
        super.viewDidLoad()

    

    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
    

    func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int 
        return 1
    

    func collectionView(collectionView: UICollectionView!, numberOfItemsInSection section: Int) -> Int
    
        return images.count
    

    func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell!
    
        var cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as HomeCollectionViewCell
        cell.imageView.image = UIImage(named:images[indexPath.row])
        cell.textLabel.text = "Woof Woof"
        return cell
    

提前致谢。

【问题讨论】:

【参考方案1】:

在您的示例项目中,您没有设置任何自动布局约束。例如,集合视图应该有 4 个约束:每个方向一个:

如果您将所有 4 个约束设置为 0,它将始终具有与其容器相同的大小。

有关更多信息,您应该阅读苹果开发者指南:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/Introduction/Introduction.html

或者从一些教程开始: http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1

【讨论】:

血腥地狱我无法设置约束...我使用的是 xcode6 beta 6...现在我更新到 xcode 6.1 一切正常,感谢您的帮助:)

以上是关于集合视图自动布局的主要内容,如果未能解决你的问题,请参考以下文章

集合视图自动布局

根据各种屏幕尺寸自动布局集合视图

集合视图单元格的自动布局行为怪异

集合视图、自动布局 UICollectionViewFlowLayout 和 itemSize

如何通过自动布局设置集合视图单元格大小

带有子视图的自动布局 NSCollectionView