UICollectionView没有大小或正确旋转

时间:2015-04-18 09:14:46

标签: ios iphone xcode swift

我尝试使用Xcode 6.3和一个新项目将Apple的CollectionView-Simple演示应用程序从Objective-C翻译成Swift 1.2。它运作不正常。具体而言,旋转设备时视图的大小不正确。它还具有纵向模式的尺寸问题,这些问题与iPhone 5和iPad 2不同。

我通过故事板寻找差异并找不到问题。我不知道要发布的相关代码是什么,所以我在GitHub上完成了所有内容:

https://github.com/DavidSteuber/CollViewSwift

有没有人看到问题以及如何解决?

1 个答案:

答案 0 :(得分:0)

问题在于Storyboard中的autoresizingMask。我用一个新的CollectionViewController替换了它,它按预期工作。查看两个视图控制器的源代码,只跳出了1个差异:

您的集合视图控制器:

<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>

新的集合视图控制器:

<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>

我不确定这是怎么发生的(也许你使用过旧的故事板?),但你可以用三种方法之一来修复它。

  1. 控制 - 点击 Project Navigator 中的Main.storyboard并选择Open As->Source Code。然后将flexibleMaxX更改为widthSizable并将flexibleMaxY更改为heightSizable。保存文件,然后 Control - 点击 Project Navigator 中的Main.storyboard,然后选择Open As->Interface Builder - Storyboard将其放回。

    < / LI>
  2. 相反,您可以像我一样从头开始重新创建集合视图控制器。

  3. 最后,您还可以在代码中修复此问题。您可以将此方法添加到您的主ViewController

    override func viewDidLoad() {
        super.viewDidLoad()
    
        self.collectionView!.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
    }