按钮未出现在场景中并出现在左上角
Button not appearing on Scene and appearing on Top Left hand corner
@objc func buttonRoundPlayer(){
buttonRound.setTitle("PlayerControl", for: .normal)
buttonRound.addTarget(self, action: #selector(roundhandle), for: .touchUpInside)
buttonRound.backgroundColor = .clear
buttonRound.layer.cornerRadius = 5
buttonRound.layer.borderWidth = 1
buttonRound.layer.borderColor = UIColor.white.cgColor
buttonRound.frame = CGRect(x: self.frame.width + 260, y: 260, width: 50, height: 50)
self.view!.addSubview(buttonRound)
}
按钮不会出现在场景中,除非 self.view!.addSubview(buttonRound) 和 CGRect 似乎不会影响按钮的位置并且按钮出现在左上角并且没有变化似乎影响按钮位置。
我希望在这个问题上得到一些帮助。
提前致谢。
如果您在 viewDidLoad()
中调用此函数,则 self.frame
可能只是一个空矩形。帧计算最好在 viewWillAppear()
或 viewWillLayoutSubviews()
.
中完成
但一般来说,还是使用自动布局比较好。例如:
buttonRound.translatesAutoresizingMaskIntoConstraints = false
buttonRound.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
buttonRound.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
有关更多信息,请访问 Apple Auto Layout Guide 或搜索许多可用的教程。
@objc func buttonRoundPlayer(){
buttonRound.setTitle("PlayerControl", for: .normal)
buttonRound.addTarget(self, action: #selector(roundhandle), for: .touchUpInside)
buttonRound.backgroundColor = .clear
buttonRound.layer.cornerRadius = 5
buttonRound.layer.borderWidth = 1
buttonRound.layer.borderColor = UIColor.white.cgColor
buttonRound.frame = CGRect(x: self.frame.width + 260, y: 260, width: 50, height: 50)
self.view!.addSubview(buttonRound)
}
按钮不会出现在场景中,除非 self.view!.addSubview(buttonRound) 和 CGRect 似乎不会影响按钮的位置并且按钮出现在左上角并且没有变化似乎影响按钮位置。
我希望在这个问题上得到一些帮助。
提前致谢。
如果您在 viewDidLoad()
中调用此函数,则 self.frame
可能只是一个空矩形。帧计算最好在 viewWillAppear()
或 viewWillLayoutSubviews()
.
但一般来说,还是使用自动布局比较好。例如:
buttonRound.translatesAutoresizingMaskIntoConstraints = false
buttonRound.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
buttonRound.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
有关更多信息,请访问 Apple Auto Layout Guide 或搜索许多可用的教程。