首页 > 解决方案 > 按钮未出现在场景中并出现在左上角

问题描述

@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 似乎不会影响按钮的位置,并且按钮出现在左上角并且似乎没有任何变化会影响按钮的位置。

我希望能在这个问题上得到一些帮助。

先感谢您。

标签: swiftxcodeuibutton

解决方案


如果你调用这个函数,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 的自动布局指南或搜索可用的许多教程。


推荐阅读