UIButton под скрытой UILabel не будет работать - PullRequest
0 голосов
/ 05 июля 2011

У меня есть большой UILabel, который я использую, чтобы покрыть кучу кнопок, пока я делаю что-то еще.
Все, что я изначально установил, это myLabel.hidden = YES;, поэтому вы не можете видеть UILabel, ноUIButtons (под ним) больше не будет работать.

Есть ли другая опция для UILabel, которую я могу использовать, чтобы касания проходили "сквозь нее", когда она скрыта?Спасибо.

Ответы [ 6 ]

2 голосов
/ 05 июля 2011

зачем использовать UILabel для покрытия кнопок.

просто установите

UIButton *button;
[button setUserInteractionEnabled:NO];

или

[button setUserInteractionEnabled:YES];
0 голосов
/ 28 сентября 2012

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

[yourButton setHidden = YES]; 
[yourButton2 setHidden = YES]; 
...
0 голосов
/ 11 июня 2012

[myLabel setUserInteractionEnabled: NO]. Даже если он скрыт, ваш ярлык все равно получит прикосновения. Вы должны отключить это, чтобы добиться того, что вы хотите.

0 голосов
/ 05 июля 2011

Самая простая вещь, которую можно использовать как обычный способ скрыть или прикрыть вещи простым UIView. набор:

[myCoverView setUserInteractionEnabled:YES]; 

, и он будет перехватывать прикосновения и блокировать прикосновения к кнопкам под ним.

Он должен прекратить блокировать касания, когда вы прячете его или поворачиваете альфа на 0.0; Вы всегда можете увидеть взаимодействие представлений покрытия с:

[myCoverView setUserInteractionEnabled:NO]; 

и прикосновения пройдут через него.

Если по какой-то причине вам нужен UILabel, эти методы также будут работать с ним.

0 голосов
/ 05 июля 2011

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

[self bringSubviewToFront:button];
0 голосов
/ 05 июля 2011

Вы можете использовать addSubView и removeFromSuperview методы:

Когда вы хотите скрыть свою UIButton с помощью вашей UILabel:

[self.view addSubview:myLabel];

и наоборот:

[myLabel removeFromSuperview];
...