python snap7 简书_SnapKit使用学习

使用注意:先添加控件到父视图,再设置约束

一、基本使用实践

let redview = UIView()

redview.backgroundColor = UIColor.red

view.addSubview(redview)

redview.snp.makeConstraints { (make) in

make.width.height.equalTo(100)//宽高设置为100

make.top.equalTo(view.snp.top).offset(100)//顶部约束相对于父控件的顶部偏移了100

make.centerX.equalTo(self.view.snp.centerX)//使控件的x轴中心点和父控件中心点对齐

}

let redview = UIView()

redview.backgroundColor = UIColor.red

view.addSubview(redview)

redview.snp.makeConstraints { (make) in

make.size.equalTo(CGSize(width: 100, height: 100))//宽高设置为100

make.top.equalToSuperview().offset(100) //顶部约束相对于父控件的顶部偏移了100

make.centerX.equalToSuperview()//使控件的x轴中心点和父控件中心点对

}

let redview = UIView()

redview.backgroundColor = UIColor.red

view.addSubview(redview)

redview.snp.makeConstraints { (make) in

make.size.equalTo(100) //宽高设置为100

make.top.equalToSuperview().offset(100)

make.centerX.equalToSuperview()

}

let redview = UIView()

redview.backgroundColor = UIColor.red

view.addSubview(redview)

redview.snp.makeConstraints { (make) in

make.leading.equalToSuperview().offset(30)

make.trailing.equalToSuperview().offset(-30)

make.top.equalToSuperview().offset(100)

make.height.equalTo(40)

}

let redview = UIView()

redview.backgroundColor = UIColor.red

view.addSubview(redview)

redview.snp.makeConstraints { (make) in

make.width.equalToSuperview().dividedBy(2)//宽是父控件宽度的1/2

make.centerX.equalToSuperview()

make.top.equalToSuperview().offset(100)

make.height.equalTo(60)

}

let redview = UIView()

redview.backgroundColor = UIColor.red

view.addSubview(redview)

redview.snp.makeConstraints { (make) in

make.width.equalTo(100)

make.centerX.equalToSuperview()

make.top.equalToSuperview().offset(100)

make.height.equalTo(redview.snp.width).multipliedBy(2)//高等于宽的2倍

}

let redview = UIView()

redview.backgroundColor = UIColor.red

view.addSubview(redview)

redview.snp.makeConstraints { (make) in

make.width.equalTo(100);

make.centerX.equalToSuperview()

make.top.equalToSuperview().offset(100);

make.bottom.equalTo(redview.snp.top).multipliedBy(3)

}

let redview = UIView()

redview.backgroundColor = UIColor.red

view.addSubview(redview)

redview.snp.makeConstraints { (make) in

make.leading.top.equalToSuperview().offset(100)

make.right.bottom.equalTo(view).offset(-100)

}

let redview = UIView()

redview.backgroundColor = UIColor.red

view.addSubview(redview)

redview.snp.makeConstraints { (make) in

make.leading.equalTo(view).offset(100)

make.trailing.equalTo(view).offset(-100)

make.top.equalTo(view.snp.top).offset(100)

make.bottom.equalToSuperview().offset(-100)

}

let redview = UIView()

redview.backgroundColor = UIColor.red

view.addSubview(redview)

let redview = UIView()

redview.backgroundColor = UIColor.red

view.addSubview(redview)

redview.snp.makeConstraints { (make) in

make.edges.equalTo(UIEdgeInsetsMake(100, 100, 100, 100))

}

二 、UILable自适应

1、缺少一个竖直或水平方向的约束让宽或高自适应

let lable = UILabel()

lable.backgroundColor=UIColor.yellow

lable.numberOfLines = 0

view.addSubview(lable)

lable.text =

"或许在某个生命宇宙,有幸与时光擦身邂逅,盛满兴衰的枯荣或许在某个生命宇宙,有幸与时光擦身邂逅,盛满兴衰的枯荣或许在某个生命宇宙,有幸与时光擦身邂逅,盛满兴衰的枯荣"

lable.snp.makeConstraints { (make) in

make.top.leading.equalToSuperview().offset(100)

make.width.equalTo(100)

}

2、在一个范围内约束自适应

let lable = UILabel()

lable.backgroundColor=UIColor.yellow

lable.numberOfLines = 0

view.addSubview(lable)

lable.text =

"或许"

lable.snp.makeConstraints { (make) in

make.top.leading.equalToSuperview().offset(100)

make.width.greaterThanOrEqualTo(100)//宽度约束最小为100

make.width.lessThanOrEqualTo(200)//宽度超过100,在200以内宽度自适应大小,宽度约束最大是200

}

三、父控件的高度随子控件的高度改变而改变

1、子控件约束设置

import UIKit

import SnapKit

class LogView: UIView {

override init(frame: CGRect) {

super.init(frame: frame)

let imageview = UIImageView()

imageview.backgroundColor = UIColor.yellow

imageview.image = UIImage(named: "visitordiscover_image_message")

self.addSubview(imageview)

imageview.snp.makeConstraints { (make) in

make.top.equalToSuperview().offset(30)

make.width.equalTo(100)

make.centerX.equalToSuperview()

make.height.equalTo(100)//子控件高度一定

make.bottom.equalToSuperview().offset(-30)//子控件内容粘着底部约束

}

}

required init?(coder aDecoder: NSCoder) {

fatalError("init(coder:) has not been implemented")

}

}

2、父控件约束设置

override func viewDidLoad() {

super.viewDidLoad()

let logview = LogView()

logview.backgroundColor = UIColor.green

view.addSubview(logview)

logview.snp.makeConstraints { (make) in

make.centerY.equalTo(self.view)

make.left.right.equalTo(self.view)

//高度约束不设置,这样高度就会被子控件撑开

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python递归函数是指一个函数在其函数体内调用自己的一种方法。它是一种简洁而有力的编程技巧,适用于解决需要重复进行相同或者相似操作的问题。 在Python中,使用递归函数的语法很简单,只需要在函数体内调用自身并提供适当的终止条件即可。递归函数通常包括两个部分:基本情况和递归情况。 基本情况是指函数可以直接得到结果而不需要调用自身的情况。在遇到基本情况时,递归函数就可以停止递归并返回结果,从而避免无限循环。 递归情况是指函数需要调用自身来解决更小规模的问题的情况。在递归情况下,函数将输入参数缩小到更小的规模,然后再次调用自身,直到达到基本情况。 递归函数可以解决很多问题,比如计算斐波那契数列、计算阶乘、二叉树的遍历等。递归函数的运行过程可以形象地表示为一个函数的调用栈。 需要注意的是,递归函数可能存在性能问题。因为每次递归调用都会创建一个新的函数帧,所以递归函数的内存消耗较大。此外,如果递归调用的深度过大,可能会导致堆栈溢出错误。 为了解决这些问题,可以优化递归函数的实现,比如使用尾递归优化、剪枝等技巧。另外,在使用递归函数时,一定要确定递归结束条件,并尽量避免无限递归的情况。 总之,Python递归函数是一种非常有用的编程技巧,可以简化问题的解决过程。但是在使用时需要注意性能和终止条件,避免出现问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值