2013-07-02 3 views
7

Я смотрю на многие ответы и до сих пор не могу понять. Я знаю, что первая линия это немного странно, но его потому, что он наследует от суперкласса, который устанавливает headerview в строке поискаПочему UIButton не отвечает на касания?

searchBar = (UISearchBar *)self.tableView.tableHeaderView; 
[[searchBar.subviews objectAtIndex:0] removeFromSuperview]; 

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, -100, self.view.frame.size.width, 100)]; 
label.text = @"AAAA"; 
[searchBar addSubview:label]; 

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[button addTarget:self 
      action:@selector(aMethod) 
forControlEvents:UIControlEventTouchDown]; 
[button setTitle:@"Show View" forState:UIControlStateNormal]; 
button.frame = CGRectMake(80.0, -60, 160.0, 40.0); 

searchBar.exclusiveTouch = NO; 
searchBar.userInteractionEnabled = NO; 
label.userInteractionEnabled = NO; 
button.userInteractionEnabled = YES; 
[searchBar insertSubview:button atIndex:3]; 
+0

попытаться установить 'searchBar.userInteractionEnabled = YES;' вместо –

+0

Я пытался, что и он не работает – mergesort

+0

Также пробовал и не работает – mergesort

ответ

5

Вот ваш ответ: searchBar.userInteractionEnabled = NO; Если вы хотите добавить subview в представление, в котором отключено действие userInteraction, это подпункт не получит штрихов. Я не очень хорошо разбираюсь в вашем коде, чтобы увидеть, есть ли другие ошибки.

Посмотрите на кадры, в первую очередь:

button.frame = CGRectMake (80.0, -60, 160,0, 40,0);

UILabel * этикетка = [[UILabel Alloc] initWithFrame: CGRectMake (0, -100, self.view.frame.size.width, 100);

кнопка не видна на всех, а метка же, объекты размещаются вне границ, и именно поэтому вы не можете прикоснуться к ним.

+0

Да, они размещены вне пределов. не может быть отправлено на что-то вне пределов? Они все еще видны, потому что я показываю tableview со смещением. Изменить: ЭТО РАБОТЫ. – mergesort

+0

нет, прикосновения не могут быть отправлены туда, это похоже на то, что вы попытаетесь переместить изображение в правой части экрана и только увидите угол, вы пытаетесь увидеть, что снаружи. Я попросил этого у iOS Engineer на WWDC. – soryngod

+0

Очевидно, это можно сделать, если вы переопределите метод. Не стоит этого в этом случае. Спасибо – mergesort

5

userInteractionEnabled установлен в NO на родительский взгляд каскадом вниз на всех подвидов. Таким образом, ваш экземпляр UIButton будет казаться невосприимчивым, потому что searchBar отключен.

+0

Он по-прежнему не работает, даже если я удалить searchbar.exclusive контакт и searchbar.userinteractionenabled – mergesort

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