我想水平居中一个图像视图,然后垂直居中。但是,在垂直居中时,我需要将图像视图稍微偏离中心,有利于视图的上半部分。我的设计师给了我一个214点的顶部间距,这在iPhone 6,7,8上非常完美。但是在iPad上它无法正确缩放。在iPhone 4S频谱的另一端,图像视图有利于视图的下半部分。
iPhone 8 (下图是iPhone 8界面构建器的屏幕截图。)
iPad (下图是为iPad Pro 9.7设置的界面构建器的屏幕截图。)
iPhone 4S (下图是为iPhone 4S设置的界面构建器的屏幕截图。)
如何根据所有屏幕尺寸进行缩放?
答案 0 :(得分:5)
您可以通过应用故事板(centerXAnchor, centerYAnchor-offset
)中的约束来解决它:
并且最终有尺寸等级变化:
我告诉你如何通过代码来解决它:
import UIKit
class ViewController: UIViewController {
let IMAGE_SIZE:CGFloat = 200 // whatever
let OFFSET:CGFloat = -60 // whatever
override func viewDidLoad() {
super.viewDidLoad()
let niceIcon = UIImageView(image: UIImage(named: "icon"))
self.view.addSubview(niceIcon)
niceIcon.translatesAutoresizingMaskIntoConstraints = false
niceIcon.widthAnchor.constraint(equalToConstant: IMAGE_SIZE).isActive = true
niceIcon.heightAnchor.constraint(equalToConstant: IMAGE_SIZE).isActive = true
niceIcon.centerXAnchor.constraint(lessThanOrEqualTo: self.view.centerXAnchor).isActive = true
niceIcon.centerYAnchor.constraint(lessThanOrEqualTo: self.view.centerYAnchor, constant: OFFSET).isActive = true
}
}
重点是:不要使用上/左/右/下锚,只需使用centerX和centerY(带负偏移)