我正在制作一个多项选择问答游戏,而我现在的目标是让四个按钮通过旋转以及新的答案选项进行刷新。我认为这意味着我需要一个动画并重新填充新按钮的子视图 - 如果这不正确或不是最好的,请在这里停止我。
无论如何,我在故事板中创建了子视图,将按钮放在里面(背景为蓝色只是为了现在看到它):
我把它拖到我的ViewController上制作一个IBOutlet(buttonContainer
)并将此代码添加到我的ViewDidLoad中:
view.addSubview(buttonContainer)
let buttonTap = UITapGestureRecognizer(target:self, action: Selector("checkAnswer"))
buttonTap.numberOfTapsRequired = 1
buttonContainer.addGestureRecognizer(buttonTap)
buttonContainer.userInteractionEnabled = true
但是:当我在模拟器中运行时,蓝色背景根本不会出现,但按钮仍处于禁用状态。
在创建子视图之前,他们调用的按钮和功能(checkAnswer
)都完美无缺。
答案 0 :(得分:1)
如果要在故事板中创建所有内容,则不需要任何此代码。只需为containerview创建一个新类,并将按钮连接为插座集合。
例如,您的按钮容器类可能如下所示:
class ButtonContainerView: UIView {
@IBOutlet var answerButtons: [UIButton]!
func rotateButtons() {
for button in answerButtons {
var context = UIGraphicsGetCurrentContext()
UIView.beginAnimations(nil, context: &context)
UIView.setAnimationCurve(UIViewAnimationCurve.Linear)
UIView.setAnimationDuration(5.0)
button.transform = CGAffineTransformRotate(button.transform, CGFloat(M_PI))
UIView.commitAnimations()
}
}
}