如何使用PureLayout摆脱情节提要和AutoLayout?

Xcode,Swift和Cocoa,这些很棒的东西,在构建iOS应用程序时会让您微笑。 但是,对于情节提要和AutoLayout,我认为这不是事实。 自动布局是我见过的最不可靠的东西。

不用担心,iOS社区已经构建了出色的开源工具来帮助我们继续构建出色的应用程序,而无需关心AutoLayout,Segues和Storyboard管理。

在本文中,我将向您展示如何在不使用任何故事板或定义自动布局约束的情况下构建应用程序。 代替这些,我将向您展示如何使用PureLayout配置视图控制器,并摆脱项目中的所有情节提要。

1.获取PureLayout

这是PureLayout的Github官方页面

PureLayout / PureLayout
PureLayout – iOS和OS X Auto Layout的终极API –极其简单,功能强大。 Objective-C和… github.com

我建议您在实现库时始终使用CocoaPods,因为这会使您的生活更轻松🙂

2.删除情节提要

首先删除您的Main.storyboard,使所有内容保持干净。

转到项目目标,然后清除“主界面”字段。

3.编辑您的AppDelegate

打开您的AppDelegate文件,然后在应用程序didFinishLaunchingWithOptions内部配置启动屏幕

  func application(_ application:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplicationLaunchOptionsKey:Any]?)->布尔{ 
 让窗口= UIWindow(框架:UIScreen.main.bounds) 
  window.backgroundColor = UIColor.white 
 让vc = CustomViewController() 
  window.rootViewController = vc 
  window.makeKeyAndVisible() 
  self.window =窗口 
 返回真 
  } 

在此示例中,我将启动视图控制器配置为CustomViewController,将在下一步中创建它。

4.创建一个新的View Controller并导入PureLayout

创建一个名称为CustomViewController的视图控制器,让我们开始配置PureLayout参数。

首先导入PureLayout,这样您就可以访问它的漂亮功能。

 导入PureLayout 

5.将UI元素放在视图上。

使用PureLayout时,请确保将“ didSetupConstraints”变量放置在视图控制器中,并将其设置为“ false”。 这是一项要求,但是您始终可以更改名称。

 类CustomViewController:UIViewController { 
  var didSetupConstraints = false 
var bannerView = UIView.newAutoLayout()
var label = UILabel.newAutoLayout()

我们已经使用PureLayout的newAutoLayout函数创建了UIView和UILabel。 它将使用PureLayout约束初始化UI对象。

因此,让我们创建一个看起来像这样的UI。

我喜欢保持简洁明了,因此在将PureLayout实现到视图控制器中时会使用Swift扩展。

  // MARK:PureLayout实现 
 扩展名CustomViewController { 
 覆盖func loadView(){ 
视图= UIView()
view.backgroundColor = UIColor.white
view.addSubview(bannerView)
bannerView.backgroundColor = UIColor.black
label.text =“ Lorem ipsum dolor amet,consectetur adipiscing elit。Fusce sit amet totortor ultricies,iaculis diam quis,molestie dioo。Interdum et malesuada在auciull上享有盛名,而Mauris eget interdum libero。蒂西多·坦普斯(tempcidunt tempus)的三等奖;南蒂姆·普鲁斯(Nam purus metus),Mattis eu fermentum等,以及恩尼姆(ulim)的饥肠病。
label.numberOfLines = 0
view.addSubview(label)
view.setNeedsUpdateConstraints()
}
 覆盖func updateViewConstraints(){ 
 如果(!didSetupConstraints){ 
bannerView.autoSetDimensions(至:CGSize(宽度:self.view.frame.width,高度:300))
bannerView.autoPinEdge(toSuperviewEdge:.top,withInset:30)
bannerView.autoPinEdge(toSuperviewEdge:.trailing,withInset:15)
bannerView.autoPinEdge(toSuperviewEdge:.lead,withInset:15)
  label.autoPinEdge(.top,to:.bottom,of:bannerView,withOffset:50) 
label.autoPinEdge(toSuperviewEdge:.trailing,withInset:15)
label.autoPinEdge(toSuperviewEdge:.lead,withInset:15)
didSetupConstraints = true
}
  super.updateViewConstraints() 
  } 
  } 

这是使用Swift使用Xcode中的PureLayout使UI设计栩栩如生的方法。 要了解有关PureLayout函数和属性的更多信息,请查看文档

6.运行您的应用程序!

是! 这很容易! 没有更多的故事板,没有更多令人困惑的AutoLayout约束…

这是CustomViewController的完整代码。