一个UI布局框架,以最少的代码实现UI设置及布局控制

栏目: IOS · 发布时间: 5年前

内容简介:Petral-UI是一个以Swift实现的 UI布局框架,以最少的代码,实现UI的搭建、属性设置以及布局控制。Github地址:Petral-UI主要是下面两个部分:
一个UI布局框架,以最少的代码实现UI设置及布局控制

Petral-UI是一个以Swift实现的 UI布局框架,以最少的代码,实现UI的搭建、属性设置以及布局控制。

源码

Github地址: github.com/HuangZhiBin…

接入条件

swift.version >= 4.2.0
复制代码

接入方式

pod 'Petral-UI'
复制代码

Petral-UI主要是下面两个部分:

1.连续点方法

连续设置UIView的属性,例如

let nameLabel = UILabel.init()
.pt_frame(x: 0, y: 0, width: 80, height: 20)
.pt_text("姓名")
.pt_font(size: 14, bold: true)
.pt_textColor(UIColor.init(hexString: "#1f1f1f"));
复制代码

通过直接调用.pt_为前缀的方法,直接连续设置View的UI属性,与调用系统方法的API类似。可实现对View的连续设置,减少代码。 现有的API可以基本满足UI设置,大家可以根据实际需要自行添加更多的API方法。

2.自动布局

通过最少的代码,实现类似AutoLayout/Masory自动布局的功能,但代码量远少于这两个框架。

自动布局的使用步骤:

  1. View初始化后,通过addSubview()方法添加到当前页面。必须先执行addSubview()方法,才能使用Petral-UI进行自动布局的设置。
self.view.addSubview(nameLabel);
复制代码

2.访问View的petralRestraint属性,通过以pt_为前缀的方法设置布局。

nameLabel.petralRestraint
.pt_topIn(self.view, distance: 10) // View的顶部与父View的距离为10
.pt_leftIn(self.view, distance: 20);// View的左边与父View的距离为20
复制代码

自动布局的API

1.同级间View的约束

View a与View b是属于同一层级的两个View,View b的位置可以由View a决定。

注意:如果a与b不是属于同一层级,调用以下方法将报错。

(1)to方法

  • pt_leftTo()

View b的左边与View a的距离是n

b.petralRestraint.pt_leftTo(a, distance: n)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_rightTo()

View b的右边与View a的距离是n

b.petralRestraint.pt_rightTo(a, distance: n)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_topTo()

View b的顶部与View a的距离是n

b.petralRestraint.pt_topTo(a, distance: n)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_bottomTo()

View b的底部与View a的距离是n

b.petralRestraint.pt_bottomTo(a, distance: n)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制

(2)as方法

  • pt_leftAs

View b的左边与View a的左边的水平位置一致

b.petralRestraint.pt_leftAs(a)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_rightAs

View b的右边与View a的右边的水平位置一致

b.petralRestraint.pt_rightAs(a)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_topAs

View b的顶部与View a的顶部的水平位置一致

b.petralRestraint.pt_topAs(a)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_bottomAs

View b的底部与View a的底部的水平位置一致

b.petralRestraint.pt_bottomAs(a)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_xCenterAs
b.petralRestraint.pt_xCenterAs(a)
复制代码

View b的中间水平位置与View a的中间水平位置一致

一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_yCenterAs
b.petralRestraint.pt_yCenterAs(a)
复制代码

View b的中间垂直位置与View a的中间垂直位置一致

一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_centerAs
b.petralRestraint.pt_centerAs(a)
复制代码

View b的中间点与View a的中间点位置一致

一个UI布局框架,以最少的代码实现UI设置及布局控制

2.父子间View的约束

View a与View b的父View,View b的位置可以由View a决定。

注意:如果a不是b的父View,调用以下方法将报错。

  • pt_leftIn()

View b的左边与父View a的左边的距离为n

b.petralRestraint.pt_leftIn(a, distance: n)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_rightIn()

View b的右边与父View a的y右边的距离为n

b.petralRestraint.pt_rightIn(a, distance: n)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_topIn()

View b的顶部与父View a的顶部的距离为n

b.petralRestraint.pt_topIn(a, distance: n)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_bottomIn()

View b的底部与父View a的底部的距离为n

b.petralRestraint.pt_bottomIn(a, distance: n)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_xCenterIn()

View b的水平位置位于父View a的中间

b.petralRestraint.pt_xCenterIn(a)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_yCenterIn()

View b的垂直位置位于父View a的中间

b.petralRestraint.pt_yCenterIn(a)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_centerIn()

View b的水平和垂直位置位于父View a的中间

b.petralRestraint.pt_centerIn(a)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制

3.指定View的固定宽高

  • pt_width()

View b的固定宽度为n

b.petralRestraint.pt_width(n)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
  • pt_height()

View b的固定高度为n

b.petralRestraint.pt_height(n)
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制

布局的级联更新

  • pt_updateDependeds()

View b的位置受到View a的制约,View c的位置受到View b的制约,若View a的位置或者大小发生改变,要保持之前的制约条件(Restraint),需要手动调用API方法a.petralRestraint.pt_updateDependeds();进行更新,使View b和View c的位置和大小发生改变。不手动调用该方法,将不主动实现UI的级联更新。

a.petralRestraint.pt_updateDependeds();
复制代码
一个UI布局框架,以最少的代码实现UI设置及布局控制
一个UI布局框架,以最少的代码实现UI设置及布局控制

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

正则表达式必知必会

正则表达式必知必会

Ben Forta / 杨涛、王建桥、杨晓云 / 人民邮电出版社 / 2007 / 29.00元

正则表达式是一种威力无比强大的武器,几乎在所有的程序设计语言里和计算机平台上都可以用它来完成各种复杂的文本处理工作。本书从简单的文本匹配开始,循序渐进地介绍了很多复杂内容,其中包括回溯引用、条件性求值和前后查找,等等。每章都为读者准备了许多简明又实用的示例,有助于全面、系统、快速掌握正则表达式,并运用它们去解决实际问题。 本书适合各种语言和平台的开发人员。一起来看看 《正则表达式必知必会》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具