2015-04-30 5 views
1

Я делаю многопользовательскую викторину, и моя цель прямо сейчас состоит в том, чтобы иметь четыре кнопки, которые обновляются, вращаясь вокруг с новыми вариантами ответов. I думаю Это означает, что мне нужно подзаголовок, который оживляет и повторно заполняет новыми кнопками - если это неправильно или не лучше, пожалуйста, остановите меня здесь.Использование кнопок внутри subview

Во всяком случае, я создал подвид в моей раскадровке, положить кнопки внутри него (фон синий просто увидеть его сейчас):

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) они назвали все сработало отлично.

+0

ли вы программно создать кнопку и View или отработанную раскадровку? –

+0

Я использовал storyBoard для создания всего – thumbtackthief

+0

, и если вы использовали раскадровку для создания пользовательского интерфейса, нет необходимости добавлять ее в просмотр, поэтому удалите эту строку view.addSubview (buttonContainer) –

ответ

1

Вам не нужен ни один из этих кодов, если вы создаете все в раскадровке. Просто создайте новый класс для contenterview и соедините кнопки как коллекцию выходных данных.

Например, ваша кнопка контейнер класс может выглядеть следующим образом:

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() 
     } 
    } 
} 
+0

Есть ли способ сделать сами кнопки анимированными? Насколько я понимаю, мне нужно было использовать представление. – thumbtackthief

+0

UIButton наследует UIView. Вы можете анимировать его с помощью этого https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/clm/UIView/transitionWithView:duration:options:aimations: завершение: –

+0

Я новичок во всем этом, но я понимаю, что представление будет использовать 'view.transitionWithView (...)', но при этом этот метод на моей кнопке вызывает ошибку - не имеет члена с именем 'transitionWithView ». Довольно потерянный и не может найти никаких ресурсов, которые объясняют, как анимировать кнопки таким образом. – thumbtackthief

Смежные вопросы