我需要在iPhone应用程序的下角放置一个圆形按钮。到目前为止,对于iPhone 5,下面的代码不错,但对于其他iPhone,按钮位于中间。
let button = UIButton(type: .custom)
button.frame = CGRect(x: 260, y: 500, width: 50, height: 50)
button.layer.cornerRadius = 0.5 * button.bounds.size.width
button.clipsToBounds = true
button.setImage(UIImage(named:"dummy.jpg"), for: UIControlState.normal);
button.addTarget(self, action: #selector(bankButtonPressed), for: .touchUpInside)
view.addSubview(button)
那么,如何动态设置按钮的知名度,使其适合所有型号的iPhone。 我想要button.frame = CGRect(x:260,y:500,宽度:50,高度:50)-它的x和y是动态设置的,因此始终位于底角。 我已经附上了屏幕截图,这就是它的样子。
请指导相同。
答案 0 :(得分:1)
在情节提要中,
控制+单击按钮。
然后拖动到底部,然后单击 Bottom to safeArea
更新,因为您是在ViewDidLoad
中创建的,所以可以使用此扩展名以编程方式向底部区域和其他区域添加约束
extension UIButton {
var safeTopAnchor: NSLayoutYAxisAnchor {
if #available(iOS 11.0, *) {
return self.safeAreaLayoutGuide.topAnchor
} else {
return self.topAnchor
}
}
var safeLeftAnchor: NSLayoutXAxisAnchor {
if #available(iOS 11.0, *){
return self.safeAreaLayoutGuide.leftAnchor
}else {
return self.leftAnchor
}
}
var safeRightAnchor: NSLayoutXAxisAnchor {
if #available(iOS 11.0, *){
return self.safeAreaLayoutGuide.rightAnchor
}else {
return self.rightAnchor
}
}
var safeBottomAnchor: NSLayoutYAxisAnchor {
if #available(iOS 11.0, *) {
return self.safeAreaLayoutGuide.bottomAnchor
} else {
return self.bottomAnchor
}
}
}
答案 1 :(得分:1)
替换此
button.frame = CGRect(x: 260, y: 500, width: 50, height: 50)
使用
button.frame = CGRect(x: UIScreen.main.bounds.size.width - 70 , y: UIScreen.main.bounds.size.height - 70 , width: 50, height: 50)
或使用自动布局
button.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
button.trailingAnchor.constraint(equalTo: view.trailingAnchor,constant:-20),
button.bottomAnchor.constraint(equalTo: view.bottomAnchor,constant:-20),
])