使用子视图

时间:2015-04-30 12:26:44

标签: ios swift

我正在制作一个多项选择问答游戏,而我现在的目标是让四个按钮通过旋转以及新的答案选项进行刷新。我认为这意味着我需要一个动画并重新填充新按钮的子视图 - 如果这不正确或不是最好的,请在这里停止我。

无论如何,我在故事板中创建了子视图,将按钮放在里面(背景为蓝色只是为了现在看到它):

enter image description here

我把它拖到我的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)都完美无缺。

1 个答案:

答案 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()
        }
    }
}