使用自动布局和 SnapKit 进行相对定位
Posted
技术标签:
【中文标题】使用自动布局和 SnapKit 进行相对定位【英文标题】:Relative positioning using auto layout and SnapKit 【发布时间】:2016-09-06 12:23:21 【问题描述】:我有一个标签,无论使用什么设备,我都希望它在屏幕上具有相同的相对位置。例如。标签的位置距视图上边距 10%,距视图左边距 30%。
常量将始终进行定位,例如距离视图边缘 150 像素,因此对于分辨率较小的设备来说会更大,而分辨率更大的设备只会有更小的距离...
有没有办法以编程方式实现这一点,例如在 SnapKit 的帮助下?
我的代码目前如下所示:
import UIKit
import SnapKit
class worldViewController: UIViewController
lazy var correctFieldNew = UILabel()
override func viewDidLoad()
super.viewDidLoad()
self.view.addSubview(correctFieldNew)
correctFieldNew.backgroundColor = UIColor.blueColor()
correctFieldNew.snp_makeConstraints (make) -> Void in
make.size.equalTo(CGSizeMake(90, 30))
我觉得我必须在这里使用乘数,但是当我写如下内容时标签不会移动一英寸:
make.top.equalTo(self.view).multipliedBy(0.1)
【问题讨论】:
不知道?也许有人知道非 snapkit 解决方案? 您可以只计算view.frame.height/width
并将其乘以0 到1 之间的某个浮点数。然后将其用作您的SnapKit 偏移量。
【参考方案1】:
正确的使用方法是:
make.top.equalTo(self.view.snp_bottom).multipliedBy(0.1)
【讨论】:
以上是关于使用自动布局和 SnapKit 进行相对定位的主要内容,如果未能解决你的问题,请参考以下文章
与在 Interface Builder 中使用自动布局相比,SnapKit 有啥优势?