In meinem Code möchte ich die UIButton in der Mitte des Bildschirms starten, dann, nachdem ich darauf geklickt habe, möchte ich es auf eine zufällige verschieben Position auf dem Bildschirm. Also habe ich den Code dafür in eine zufällige Position gebracht, nachdem ich ihn angeklickt habe, obwohl das Problem ist, dass er in einer zufälligen Position beginnt, anstatt in der Mitte zu beginnen. Hier ist der Code für meine ViewController.swift:Mein UIButton beginnt an einer zufälligen Position statt in der Mitte zu starten und bewegt sich
class ViewController: UIViewController {
@IBOutlet weak var btn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
btn.layer.cornerRadius = 10
btn.layer.position = CGPoint(x: self.view.center.x, y: self.view.center.y)
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func tapRandomBTN(_ sender: Any) {
let buttonWidth = btn.frame.width
let buttonHeight = btn.frame.height
// Find the width and height of the enclosing view
let viewWidth = btn.superview!.bounds.width
let viewHeight = btn.superview!.bounds.height
// Compute width and height of the area to contain the button's center
let xwidth = viewWidth - buttonWidth
let yheight = viewHeight - buttonHeight
// Generate a random x and y offset
let xoffset = CGFloat(arc4random_uniform(UInt32(xwidth)))
let yoffset = CGFloat(arc4random_uniform(UInt32(yheight)))
// Offset the button's center by the random offsets.
btn.center.x = xoffset + buttonWidth/2
btn.center.y = yoffset + buttonHeight/2
}
}
in 'viewDidLoad' gibt es keine Layout-Informationen vorhanden, also alles ... wird nicht umrahmen, Position, Lage, in der Mitte, im Zusammenhang/definiert/random. Versuchen Sie 'viewDidLayoutSubviews' z. – luk2302