自动布局和UICollectionViewCells:动态大小调整和动画第1部分

确保像上面的我的一样设置您的应用程序。 删除Main.storyboard并不是完全必需的,但是由于您没有使用它,因此最好将其删除。

现在,由于我们以编程方式进行了所有操作,因此需要对AppDelegate的didFinishLaunchingWithOptions函数进行一些更改。 将以下代码添加到该函数:

 窗口= UIWindow(框架:UIScreen.main.bounds) 
   firstScreen = ViewController() 
navController = UINavigationController(rootViewController:firstScreen)
  自我 .window?.rootViewController = navController 
自我 .window?.makeKeyAndVisible()

上面的大多数代码应该是不言自明的。 我们将窗口设置为具有整个屏幕定义的框架的窗口,创建UIViewController和UINavigationController,然后将UIViewController设置为UINavigationController的根视图控制器。 然后,使UINavigationController成为窗口的根视图控制器。 该makeKeyAndVisible函数使窗口可见,并将窗口移到最前面。

在运行应用程序之前,将此行(或类似内容)添加到ViewController文件的viewDidLoad函数中:

  自我 .view.backgroundColor = UIColor.red 

运行该应用程序,现在您的屏幕应该是红色(或您选择的任何颜色),顶部带有一个栏。 我们将继续进行讨论,即UINavigationController。

现在该开始UICollectionView了,这需要一些代码才能开始。 我将复制以下代码,并从中摘录:

自动布局最重要的行是collectionView.translatesAutoresizingMaskIntoConstraints = false

如果没有这一行,Swift将尝试为您将UICollectionView的Autoresizing Mask转换为Auto Layout约束,而我们希望成为决定视图约束的对象。

在ViewController文件的顶部,您将要确保正在实现UICollectionViewDataSource,UICollectionViewDelegate和UICollectionViewDelegateFlowLayout协议。 当Xcode询问您是否要添加协议存根时,请继续添加它们。

您的ViewController文件应如下所示:

此时,您应该有一些占位符代码和一个错误,阻止您在设备上运行该应用程序。