内容简介:Swift iOS:SnapKit
iOS默认提供的布局技术强大而愚蠢。幸好有一个封装的包SnapKit,可以让布局变得容易阅读和修改。
假设要在一个UIViewController上布局两个label,要求是:
- 第一个label的xy距离父视图为5,100
- 第二个label 的x距离第一个label为10,高度一样
- 第三个label的y距离第一个label底边为10,x一样
那么可以这样做:
import SnapKit
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
let page = Page1()
self.window!.rootViewController = page
self.window?.makeKeyAndVisible()
return true
}
}
class Page1: UIViewController {
var count = 0
var label1 : UILabel!
var label2 : UILabel!
var label3 : UILabel!
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
label1 = UILabel()
label1.backgroundColor = .red
view.addSubview(label1)
label2 = UILabel()
label2.backgroundColor = .red
view.addSubview(label2)
label3 = UILabel()
label3.backgroundColor = .red
view.addSubview(label3)
label1.text = "1111"
label2.text = "2222"
label3.text = "3333"
setup()
}
func setup(){
label1.snp.makeConstraints{
$0.left.equalTo(view).offset(5);
$0.top.equalTo(view).offset(100);
}
label2.snp.makeConstraints{
$0.left.equalTo(label1.snp.right).offset(10);
$0.top.equalTo(label1)
}
label3.snp.makeConstraints{
$0.left.equalTo(label1)
$0.top.equalTo(label1.snp.bottom).offset(5)
}
}
// old stupid approach
func setup1(){
label1.snp.makeConstraints{ (make) -> Void in
make.left.equalTo(view).offset(5);
make.top.equalTo(view).offset(100);
}
label2.snp.makeConstraints{ (make) -> Void in
make.left.equalTo(label1.snp.right).offset(10);
make.top.equalTo(label1)
}
label3.snp.makeConstraints{ (make) -> Void in
make.left.equalTo(label1)
make.top.equalTo(label1.snp.bottom).offset(5)
}
}
}
函数setup1的默认的布局代码,setup函数的代码则利用了闭包的特性,可以不必编写参数,直接用$引用参数,这样做会让代码更加简练,是一种实用的技能。
以上所述就是小编给大家介绍的《Swift iOS:SnapKit》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
白话机器学习算法
[新加坡] 黄莉婷、[新加坡] 苏川集 / 武传海 / 人民邮电出版社 / 2019-2 / 49.00元
与使用数学语言或计算机编程语言讲解算法的书不同,本书另辟蹊径,用通俗易懂的人类语言以及大量有趣的示例和插图讲解10多种前沿的机器学习算法。内容涵盖k均值聚类、主成分分析、关联规则、社会网络分析等无监督学习算法,以及回归分析、k最近邻、支持向量机、决策树、随机森林、神经网络等监督学习算法,并概述强化学习算法的思想。任何对机器学习和数据科学怀有好奇心的人都可以通过本书构建知识体系。一起来看看 《白话机器学习算法》 这本书的介绍吧!
CSS 压缩/解压工具
在线压缩/解压 CSS 代码
XML、JSON 在线转换
在线XML、JSON转换工具