addSubView для UIButton - PullRequest
       29

addSubView для UIButton

43 голосов
/ 13 июля 2011

Я пытаюсь добавить подпредставления в UIButton. Это работает нормально прямо сейчас. Но кнопка больше не активна, как только я добавляю подпредставления.

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

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 добавочных просмотра. Если кто-нибудь знает, как это исправить, было бы здорово!

Thnx !!!

Ответы [ 6 ]

75 голосов
/ 13 июля 2011

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

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

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

3 голосов
/ 13 июля 2011

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

[UIButton buttonWithType:UIButtonTypeCustom];

вместо:

[UIButton buttonWithType:UIButtonControlType];

1 голос
/ 12 февраля 2015

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

1 голос
/ 13 июля 2011

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

1 голос
/ 13 июля 2011

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

[asyncImage setUserInteractionEnabled:YES];
0 голосов
/ 08 июля 2015

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

uibtn.userInteractionEnabled = false
uibtn.exclusiveTouch = false
...