按视图高度的百分比定义恒定约束
Posted
技术标签:
【中文标题】按视图高度的百分比定义恒定约束【英文标题】:define a constant constraint by a percentage of the views height 【发布时间】:2021-03-08 05:53:09 【问题描述】:在下面的快速代码中,我试图始终将图片限制在顶部锚点下方的 10%。通过常量 来做到这一点。就像橙色框下方的图片一样,约束在顶部锚点下方 10% 处,并且它是一个常数。我尝试在它不起作用的约束中弄乱常量。
import UIKit
class ViewController: UIViewController
var drawView = UIView()
var pic = UIImageView()
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
[pic,drawView].forEach
$0.translatesAutoresizingMaskIntoConstraints = false
view.addSubview($0)
NSLayoutConstraint.activate([
//here is the constant
pic.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor,constant,),
pic.centerXAnchor.constraint(equalTo: view.centerXAnchor),
pic.heightAnchor.constraint(equalTo: view.heightAnchor,multiplier: 0.25),
pic.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 0.8),
drawView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
drawView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
drawView.heightAnchor.constraint(equalTo: view.heightAnchor,multiplier: 0.3),
drawView.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 0.9),
])
view.bringSubviewToFront(pic)
drawView.backgroundColor = .blue
pic.backgroundColor = .purple
【问题讨论】:
【参考方案1】:您需要一个高度为父视图高度的 1/10 的不可见视图,通过它的乘数来充当分隔符。现在只需将其底部设置为可见视图的顶部即可。
【讨论】:
以上是关于按视图高度的百分比定义恒定约束的主要内容,如果未能解决你的问题,请参考以下文章