[快速学会Swift第三方库] Cartography篇

[快速学会Swift第三方库] Cartography篇,第1张

概述[快速学会Swift第三方库] Cartography篇 Cartography 是用来声明 Swift 中的 Auto Layout,无需输入任何 stringly 就可设置自己 Auto Layout 的约束声明。 目录 快速学会Swift第三方库 Cartography篇 目录 编码之前 导入 Cartography 其他 *** 作 基本约束 示例代码 运行结果 替换约束 示例代码 运行结果 复合 [快速学会Swift第三方库] Cartography篇

Cartography 是用来声明 Swift 中的 auto Layout,无需输入任何 stringly 就可设置自己 auto Layout 的约束声明。

目录 快速学会Swift第三方库 Cartography篇 目录 编码之前 导入 Cartography 其他 *** 作 基本约束 示例代码 运行结果 替换约束 示例代码 运行结果 复合约束与对齐 示例代码 运行结果 边距 示例代码 运行结果 深入学习 编码之前 导入 Cartography

推荐使用CocoaPods进行导入,CocoaPods是一个负责管理iOS项目中第三方开源库的工具,安装CocoaPods之后使用命令行就能轻松地对所有第三方开源库进行安装和更新,而不需要每次上GitHub去下载。
CocoaPods的安装过程传送门:iOS 9 导入类库全面详尽过程(Ruby安装->CocoaPods安装->导入类库)
手动下载:GitHub-Cartography主页

装好CocoaPods后,修改Podfile文件内容为如下:

source 'https://github.com/CocoaPods/Specs.git'platform :ios,'9.0'use_frameworks!target 'Web' dopod 'Cartography','~> 0.6.0'endxcodeproj 'Desktop/Web/Web.xcodeproj'

target后面为工程名,最后一行为工程路径(这里的Web是我的工程名)

再执行命令:

$ pod install
其他 *** 作

另外还需要在Target->工程名->Build Settings->Search Paths->User header Search Paths处添加Cartography所在的目录:

最后在你需要用到Cartography的类中加上:

import Cartography
基本约束 示例代码
func baseConstrain() {        let vIEw1 = UIVIEw()        let vIEw2 = UIVIEw()        vIEw1.backgroundcolor = UIcolor.bluecolor()        vIEw2.backgroundcolor = UIcolor.redcolor()        self.vIEw.addSubvIEw(vIEw1)        self.vIEw.addSubvIEw(vIEw2)        constrain(vIEw1,vIEw2) { (vIEw1,vIEw2) in            //vIEw宽度等于父视图宽度-50的一半            vIEw1.wIDth == (vIEw1.supervIEw!.wIDth - 50) * 0.5            //vIEw2的宽度等于vIEw1宽度-50            vIEw2.wIDth   == vIEw1.wIDth - 50            //vIEw的高度等于40            vIEw1.height == 40            //vIEw2的高度等于vIEw1的高度            vIEw2.height == vIEw1.height            //vIEw1水平居中            vIEw1.centerX == vIEw1.supervIEw!.centerX            //vIEw2和vIEw1中心水平对齐            vIEw2.centerX == vIEw1.centerX            //vIEw1的顶部离父视图的顶部距离大于20            vIEw1.top >= vIEw1.supervIEw!.top + 20            //vIEw2的顶部离vIEw1的底部距离等于20            vIEw2.top == vIEw1.bottom + 20        }    }
运行结果 替换约束 示例代码
func replaceConstrain()  {        let vIEw = UIVIEw()        vIEw.backgroundcolor = UIcolor.bluecolor()        self.vIEw.addSubvIEw(vIEw)        constrain(vIEw) { (vIEw) in            vIEw.wIDth == 100            vIEw.height == 100        }        let group = ConstraintGroup()        //设定vIEw位置于左上角        constrain(vIEw,replace: group) { (vIEw) in            vIEw.top == vIEw.supervIEw!.top            vIEw.left == vIEw.supervIEw!.left        }        //设定vIEw位置于右下角        constrain(vIEw,replace: group) { (vIEw) in            vIEw.bottom == vIEw.supervIEw!.bottom            vIEw.right == vIEw.supervIEw!.right        }        //执行动画        UIVIEw.animateWithDuration(0.5,animations: vIEw.layoutIfNeeded)    }
运行结果

可以看到vIEw从左上角移动到右下角,最终如下所示:

复合约束与对齐 示例代码
func aligning()  {        let vIEw1 = UIVIEw()        let vIEw2 = UIVIEw()        let vIEw3 = UIVIEw()        vIEw1.backgroundcolor = UIcolor.bluecolor()        vIEw2.backgroundcolor = UIcolor.redcolor()        vIEw3.backgroundcolor = UIcolor.greencolor()        self.vIEw.addSubvIEw(vIEw1)        self.vIEw.addSubvIEw(vIEw2)        self.vIEw.addSubvIEw(vIEw3)        constrain(vIEw1,vIEw2,vIEw3) { (vIEw1,vIEw3) in            //复合约束,vIEw1大小为父视图的1/4,位置居中            vIEw1.size == vIEw1.supervIEw!.size / 4            vIEw1.center == vIEw1.supervIEw!.center            vIEw2.size == vIEw1.size / 2            vIEw3.size == vIEw1.size / 3            //3个vIEw的顶部对齐            align(top: vIEw1,vIEw3)            //3个vIEw水平均匀分布,相邻vIEw之间距离为10            distribute(by: 10,horizontally: vIEw1,vIEw3)        }    }
运行结果 边距 示例代码
func edge()  {        let vIEw = UIVIEw()        vIEw.backgroundcolor = UIcolor.bluecolor()        self.vIEw.addSubvIEw(vIEw)        constrain(vIEw) { (vIEw) in            //vIEw与父视图的上下左右边距均为20            vIEw.edges == inset(vIEw.supervIEw!.edges,20,20)        }    }
运行结果 深入学习

这里列出了最主要的几种约束,如果你希望能够更加深入地学习Cartography,可以前往GitHub-Cartography主页

总结

以上是内存溢出为你收集整理的[快速学会Swift第三方库] Cartography篇全部内容,希望文章能够帮你解决[快速学会Swift第三方库] Cartography篇所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存