AddSubView для UIButton

Я пытаюсь добавить subviews в UIButton. Сейчас это работает отлично. Но кнопка больше не будет нажата, как только я добавлю subviews.

Я использую следующий код:

UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(column*100+24, row*80+10, 64, 64);
[button addSubview:asyncImage];
[button addSubview:price];
    [button addTarget:self 
               action:@selector(buttonClicked:) 
     forControlEvents:UIControlEventTouchUpInside];

Кнопка снова работает, если я вырезаю 2 addubviews. Если кто-нибудь знает, как это исправить, было бы здорово!

Thnx!!!

Ответ 1

Я нашел быстрые решения. Мне нужно было настроить asyncimageview следующим образом:

asyncImage.userInteractionEnabled = NO;
        asyncImage.exclusiveTouch = NO;

После этого он сработает!

Ответ 2

попробовать:

[UIButton buttonWithType:UIButtonTypeCustom];

вместо:

[UIButton buttonWithType:UIButtonControlType];

Ответ 3

Вы пытались поставить:

[asyncImage setUserInteractionEnabled:YES];

Ответ 4

в той же ситуации я делаю это действие: наследуйте от UIButton и добавьте все метки и образное изображение кнопки в себя, наконец, добавьте новую кнопку для просмотра в качестве последнего подзаголовка и добавьте цели своей кнопки на эту последнюю кнопку (также установите backgroundColor на clearColor для прозрачного). теперь он будет доступен для кликов и будет отлично работать.

Ответ 5

Здесь важно убедиться, что userInteractionEnabled будет установлен на NO. К счастью, он сразу работает для UIImageView и UILabel (возможно, для других подклассов UIView, но это самые популярные субвизоры, добавленные к кнопке), потому что по умолчанию для этих классов по умолчанию установлено значение NO. К сожалению, он установлен в YES в UIView, поэтому обязательно измените его в этом случае. Беспокойство с любыми другими флагами не должно быть необходимым. Характер проблемы заключается в том, что многие люди не знают, что значение по умолчанию для этого флага отличается в подклассах.

Ответ 6

В Swift, проверьте, что у вас заблокирован UIButton

uibtn.userInteractionEnabled = false
uibtn.exclusiveTouch = false