2015-08-26 4 views
2

Я хочу сделать пользовательский вид, который будет содержать следующее:UIButton действия не вызывается внутри пользовательского вида

  • зеленого вид
  • внутри зеленого зрения с видом
  • изображений на вершине этого другой белый вид
  • другой вид изображения на вершине белого зрения
  • и на вершине всех UIButton

Это мой код, который находится внутри пользовательского вида:

func setup() { 

    // add green view 
    let greenView = UIView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height)) 
    greenView.backgroundColor = UIColor.greenColor() 
    greenView.userInteractionEnabled = true 
    addSubview(greenView) 

    // add first image 
    let image1 = UIImageView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height)) 
    image1.image = UIImage(named: "checked2") 
    image1.userInteractionEnabled = true 
    greenView.addSubview(image1) 

    // add white image 
    let whiteView = UIView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height)) 
    whiteView.backgroundColor = UIColor.yellowColor() 
    whiteView.userInteractionEnabled = true 
    greenView.addSubview(whiteView) 

    // add second image 
    let image2 = UIImageView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height)) 
    image2.image = UIImage(named: "checked") 
    image2.userInteractionEnabled = true 
    whiteView.addSubview(image2) 

    // add button 
    let button = UIButton(frame: CGRectMake(0, 0, frame.size.width, frame.size.height)) 
    button.backgroundColor = UIColor.redColor() 
    button.addTarget(self, action: Selector("animation:"), forControlEvents: UIControlEvents.TouchUpInside) 
    button.userInteractionEnabled = true 
    addSubview(button) 



} 

func animation(button: UIButton) { 
    print("tapped") 
} 

кнопка, которая появляется красный сверху, но действие не вызывается при нажатии на нее.
Я попытался установить userInteractionEnabled на все элементы, но без эффекта.

+0

Убедитесь, что для этого пользовательского представления включено взаимодействие с пользователем. – Dev

+0

В консоли отображается ошибка, которая говорит что-то вроде: не может найти селектор? – hola

+0

У меня нет сообщений. Пользовательский вид имеет userInteractionEnabled, установленный в true – Kobe

ответ

3

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

+1

Это должен быть правильный ответ. – hola

+0

Пользовательский контейнер представления также имеет значение userInteractionEnabled, равное true – Kobe

+0

ОК, похоже, что он работает сейчас. Я очистил ограничения для контейнера пользовательского представления и теперь его работу. Так авто макет был проблемой. – Kobe

0

Пользовательский интерфейс пользователя включен по умолчанию, нет необходимости его явно указывать.

+0

нет необходимости объявлять его в классе, просмотр также имеет ссылку на него (после добавления в качестве подзаголовка), поэтому он не будет выпущен – Usama

+0

addSubview добавит взгляды и проведет сильную ссылку на них и не будет выпущен – hola

+0

Затем он должен работа ... –

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