10

私は多くの回答を見てきましたが、まだ理解できません。最初の行が少し奇妙であることは知っていますが、ヘッダービューを検索バーに設定するスーパークラスから継承しているためです

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];
4

2 に答える 2

10

親ビューで userInteractionEnabled を NO に設定すると、すべてのサブビューにカスケードされます。したがって、searchBar が無効になっているため、UIButton のインスタンスは応答していないように見えます。

于 2013-07-02T14:58:02.227 に答える