Ich befolge derzeit dieses Apples iOS Swift Tutorial für Anfänger, die erklären, wie man die Bewertung Sternansicht erstellen und ich verstehe nicht etwas über den Layout-Code. Um Layout die Bewertung Schaltflächen sie von Code erstellt mit einer for-in-Schleife, schaffen sie eine andere Methode:Apple Swift Tutorial: Bewertungsschaltflächen Layout
override func layoutSubviews() {
var buttonFrame = CGRect(x: 0, y: 0, width: 44, height: 44)
// Offset each button's origin by the length of the button plus spacing.
for (index, button) in ratingButtons.enumerate() {
buttonFrame.origin.x = CGFloat(index * (44 + 5))
button.frame = buttonFrame
}
}
Aber bei der Initialisierung der Tasten:
for _ in 0..<5 {
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 44, height: 44))
button.backgroundColor = UIColor.redColor()
// Add event listener
button.addTarget(self, action: #selector(RatingControl.rateButtonTapped(_:)), forControlEvents: .TouchDown)
ratingButtons += [button]
addSubview(button)
}
kann nicht einfach passen sie die Code, und verwenden Sie einen Platzhalter (_) in der For-in-Schleife, verwenden Sie einen Index und tun Sie so etwas? :
for i in 0..<5 {
let button = UIButton(frame: CGRect(x: (i * 49), y: 0, width: 44, height: 44))
button.backgroundColor = UIColor.redColor()
// Add event listener
button.addTarget(self, action: #selector(RatingControl.rateButtonTapped(_:)), forControlEvents: .TouchDown)
ratingButtons += [button]
addSubview(button)
}
ich Swift lerne, und ich verstehe nicht, warum sie das layoutSubviews Methode anstatt das zu tun, dass bei der Initialisierung außer Kraft setzen. Sag mir, welcher Weg ist der Reiniger bitte. Hier ist das Tutorial Link: https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson5.html
Grüße,