HKUILayoutShorthands 1.0.1

HKUILayoutShorthands 1.0.1

Harrison Kong维护。



  • 作者
  • Harrison Kong

HKUILayoutShorthands

Swift编程UI布局约束简写方法

介绍

如果您曾经使用Swift编程设置UI元素和布局约束,您可能会写出类似这样的代码

  let myView = UIScrollView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
  view.addSubview(myView)
  myView.translatesAutoresizingMaskIntoConstraints = false
  myView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
  myView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true
  myView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true
  myView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor).isActive = true

仅为了一个元素,就有很多代码。如果您要布置一大堆元素,您的代码会变得非常长,并且很难一眼看懂。

这就是我创建这些简写方法的原因。上述代码可以简单地写成:

  let myView = UIScrollView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
  myView.anchorAllFourSidesToSafeAreaOf(view)

这不是更好吗?

另一个示例

如果您只想水平垂直居中一个元素,您会写出类似这样的代码

  let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))

  myView.addSubview(tableView)
  tableView.translatesAutoresizingMaskIntoConstraints = false
  tableView.centerXAnchor.constraint(equalTo: myView.centerXAnchor).isActive = true
  tableView.centerYAnchor.constraint(equalTo: myView.centerYAnchor).isActive = true

使用我的快捷方式,您可以简单地写出这样的代码:

  let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))

  myView.addSubview(tableView)
  tableView.anchorAlignCenterWith(myView)

更多示例

这里有一些在其他场景中你可以做的示例

  redView.anchorAlignHorizontalCentersWith(myView)

  greenView.anchorAlignRightsWith(redView)

  blueView.anchorSetWidthToWidthOf(someOtherView, multiplier: 0.5)

  let someViewHeightConstraint =
    someView.anchorSetHeightToWidthOf(anotherView)

  yellowView.setHeightToConstant(200.0)

  purpleView.anchorAlignLeftWithRightOf(orangeView, offset: 10.0)

  insetView.anchorAlignTopGtEqToTopOf(mapView)

如你所见,这减少了代码量并提高了可读性。大多数布局约束场景都涵盖在内。请参阅单独的用户指南。

设置

运行示例应用

简单地将示例应用从 https://github.com/harrisonkong/HKUILayoutShorthandsDemo 克隆出来,然后构建并运行。

在您自己的项目中使用

您可以在项目中包含 UIView+HKUILayoutShorthands.swift 文件或者使用 CocoaPod。如果您使用 CocoaPod,不要忘记导入模块。

  import HKUILayoutShorthands

自定义

文件中有许多快捷方式。您可能想要删除那些您不常用的,以减少大小和构建时间。