2013-07-02 33 views
7

Tôi đã xem xét nhiều câu trả lời và vẫn không thể hiểu được. Tôi biết dòng đầu tiên là một chút lạ, nhưng nó bởi vì nó được kế thừa từ một lớp học siêu mà đặt headerview để tìm kiếm thanhTại sao UIButton không phản hồi lại các lần chạm?

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

cố gắng thiết lập 'searchBar.userInteractionEnabled = YES; 'thay vì –

+0

Tôi đã thử điều đó và nó không hoạt động – mergesort

+0

Cũng cố gắng và không hoạt động – mergesort

Trả lời

5

Đây là câu trả lời của bạn: searchBar.userInteractionEnabled = NO; Nếu bạn định thêm chế độ xem phụ vào chế độ xem đã tắt userInteraction thì chế độ xem phụ sẽ không nhận được chạm. Tôi đã không nhìn rất tốt vào mã của bạn để xem nếu có những sai lầm khác.

Nhìn vào khung ở nơi đầu tiên:

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

UILabel * label = [[UILabel alloc] initWithFrame: CGRectMake (0, -100, self.view.frame.size.width, 100);

Nút không hiển thị và nhãn giống nhau, các đối tượng được đặt bên ngoài giới hạn và đó là lý do bạn không thể chạm vào chúng.

+0

vâng, chúng được đặt ngoài ranh giới. có thể chạm không được gửi đến một cái gì đó ngoài giới hạn? Chúng vẫn hiển thị vì tôi đang hiển thị chế độ xem bảng ở mức bù. Chỉnh sửa: CÔNG TRÌNH NÀY. – mergesort

+0

không, chạm không thể gửi ở đó, nó giống như bạn sẽ cố gắng di chuyển một hình ảnh ở bên phải màn hình của bạn và chỉ nhìn thấy một góc, bạn đang cố gắng để xem những gì là bên ngoài. Tôi đã có yêu cầu này với một kỹ sư iOS tại WWDC. – soryngod

+0

Rõ ràng điều này có thể được thực hiện nếu bạn ghi đè lên một phương pháp. Không có giá trị nó trong trường hợp này mặc dù. Cảm ơn – mergesort

5

userInteractionEnabled thiết lập để NO trên một cái nhìn mẹ sẽ thác xuống cho tất cả các subviews. Vì vậy, trường hợp của bạn của UIButton sẽ xuất hiện không phản hồi vì thanh tìm kiếm bị tắt.

+0

Nó vẫn không hoạt động ngay cả khi tôi xóa liên lạc searchbar.exclusive và searchbar.userinteractionenabled – mergesort

Các vấn đề liên quan