У меня есть этот код ниже:TouchUpInside Кнопка не работает
override func viewDidLoad() {
super.viewDidLoad()
...
signInButton = CustomButton(frame: CGRectMake(12.5/100.0 * self.view.bounds.size.width, 5/6.0 * self.view.bounds.size.height, 60, 23))
signInButton.customizeButtonText("Sign in")
joinButton = CustomButton(frame: CGRectMake((75/100.0 * self.view.bounds.size.width), 5/6.0 * self.view.bounds.size.height, 60, 23))
joinButton.customizeButtonText("Join")
userNameTextField = CustomTextField(frame: CGRectMake(-500, 60/100.0 * self.view.bounds.size.height, 400, 35))
userNameTextField.placeholder = "Username"
passwordTextField = CustomTextField(frame: CGRectMake(-500, 70/100.0 * self.view.bounds.size.height, 400, 35))
passwordTextField.placeholder = "Password"
signInButton.addTarget(self, action: "signInButtonClicked:", forControlEvents: UIControlEvents.TouchUpInside)
joinButton.addTarget(self, action: "joinButtonClicked:", forControlEvents: UIControlEvents.TouchUpInside)
}
Тогда в методе signInButtonClicked:
и joinButtonClicked:
у меня есть этот код, где я анимировать UITextField для конкретных х и у позиции я хочу:
func signInButtonClicked(sender: UIButton!) {
UIView.animateWithDuration(0.25, delay: 0.25, options: UIViewAnimationOptions.CurveEaseInOut, animations: {() -> Void in
self.userNameTextField.frame = CGRectMake((-500 + ((50/100.0 * self.view.bounds.size.width) - 200)), 60/100.0 * self.view.bounds.size.height, 400,35)
}, completion: nil)
}
func joinButtonClicked(sender: UIButton!) {
UIView.animateWithDuration(0.25, delay: 0.25, options: UIViewAnimationOptions.CurveEaseInOut, animations: {() -> Void in
self.passwordTextField.frame = CGRectMake((-500 + ((50/100.0 * self.view.bounds.size.width) - 200)), 70/100.0 * self.view.bounds.size.height, 400,35)
}, completion: nil)
}
По какой-то причине, когда я нажимаю на signInButton
или joinButton
, анимации текстовых полей не бывает. Я здесь что-то не так? Я добавил цель для обеих кнопок к себе и задал правильное действие для каждой из кнопок.
CustomButton Класс:
import UIKit
class CustomButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
self.layer.cornerRadius = 2.0
self.layer.shadowColor = UIColor(red: SHAWDOW_COLOR, green: SHAWDOW_COLOR, blue: SHAWDOW_COLOR, alpha: 0.5).CGColor
self.layer.shadowRadius = 5.0
self.layer.shadowOpacity = 1
self.layer.shadowOffset = CGSizeMake(0.0, 2.0)
self.titleLabel?.font = UIFont(name: "NotoSans-Regular", size: 17.0)
self.backgroundColor = UIColor.redColor()
self.userInteractionEnabled = true
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
}
func customizeButtonText(text: String!) {
self.setTitle(text, forState: UIControlState.Normal)
}
}
Это не имеет никакого значения в Swift, если вы пишете 'Selector (" joinButtonClicked: ")' или просто '" joinButtonClicked: "'. –
Я тоже попытался использовать это. Но, похоже, это не изменило ситуацию. – LP496
Убедитесь, что ваши кнопки имеют 'userInteractionEnabled', а также все их супервизоры. – Jelly