[英]MessageKit : Add Gesture recognizer to messageCollectionView and cellDelegate doesn't work
[英]Add a gesture recognizer to tableView header doesn't work?
我知道“表視圖標題”(表格視圖的最頂部)是一個視圖所以我嘗試添加一個UITapGestureRecognizer,但它不起作用...
代碼很簡單:
- (void)tap:(UITapGestureRecognizer *)recognizer
{
// do something
}
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
[self.tableView.tableHeaderView addGestureRecognizer:recognizer];
這里有任何提示要關心嗎? 非常感謝
這對我有用:取而代之的是:
self.tableView.tableHeaderView
我在tableview上的每個UILabel上添加了手勢識別器。
-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UILabel *headerLabel = [[UILabel alloc]init];
headerLabel.tag = section;
headerLabel.userInteractionEnabled = YES;
headerLabel.backgroundColor = [UIColor greenColor];
headerLabel.text = [NSString stringWithFormat:@"Header No.%d",section];
headerLabel.frame = CGRectMake(0, 0, tableView.tableHeaderView.frame.size.width, tableView.tableHeaderView.frame.size.height);
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(catchHeaderGesture:)];
tapGesture.cancelsTouchesInView = NO;
[headerLabel addGestureRecognizer:tapGesture];
return headerLabel;
//return nil;
}
-(void)catchHeaderGesture:(UIGestureRecognizer*)sender
{
UILabel *caughtLabel = (UILabel*)sender.view;
NSLog(@"header no : %d", caughtLabel.tag);
}
我希望有所幫助。
首先確保在viewDidLoad或viewWillAppear中調用此代碼部分
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
[self.tableView.tableHeaderView addGestureRecognizer:recognizer];
其次,請確保
self.tableView.tableHeaderView
不是null,添加
NSLog([self.tableView.tableHeaderView description]);
並檢查控制台輸出
我剛嘗試了你的代碼,並且正確收到了水龍頭
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.