我对特征和约束感到非常困惑。
我有一个 View 需要采用 1:1 的比例,并且它的大小需要在运行时以及所有设备方向上取决于屏幕宽度或屏幕高度中的较大者。
最重要的是,我需要将它从屏幕中心向下移动,移动量是在运行时根据方向和 iPhone 与 iPad 计算得出的。
在代码中完成所有这些并从此 View 中删除所有 AutoLayout 约束是否可能或更好?
我读过这个:Aspect ratio constraint relative to the screen width
但我似乎仍然无法让它做我想做的事。
有人可以阐明我需要做什么吗?
谢谢
最佳答案
您至少需要将这 2 个约束添加到 Storyboard 中的 UIView。 第一个将用于纵横比,第二个将用于 UIView 的宽度,其值为常量。 您将把第二个约束的导出添加到名为 widthConstraint 的 UIViewController 类中 在委托(delegate)函数 ViewWillAppear() 上,您将添加计算最大边的代码,并将该值添加到约束常量。
UIView.animate(withDuration: 0.0) {
let largestOfScreenSide = max(UIScreen.main.bounds.width, UIScreen.main.bounds.height)
self.widthConstraint.constant = largestOfScreenSide
self.view.layoutIfNeeded()
}
关于swift - 是否可以使用 AutoLayout 在运行时使纵横比为 1 :1 based on the largest of either Screen Height or Screen width,?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57667848/