iOS UITableView检测表下方的触摸-是否需要子类化?

| 我希望能够检测到用户何时在UITableView的最后一行下方点击,但不会负面影响滚动表的能力。有没有比对UITableView子类化更简单的方法(即,覆盖表的touchesBegan)? 我想要这样做的原因是: 当表为空(首次打开应用程序)或只有几个单元格时,可以利用屏幕上的所有空间来调用Add方法。 我已经尝试过使用大型自定义UIButton,而在大型tableview页脚中没有图像(即不可见),但是按该按钮会阻止任何滚动,但是一旦有几个单元格就想滚动。我想一旦表中的项目超过零,就可以从页脚中删除按钮,但是当表中已经有一些项目时,这对我没有任何帮助。 感谢您的任何想法!     
已邀请:
在tableView的页脚上设置的轻击手势识别器已经为我完成了窍门。如广告所示,它可以检测到轻敲,但可以通过其他手势(例如滚动)传递到UITableView上。
//In viewDidLoad 
//configure footerView with gesture recognizer
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]
                                            initWithTarget:self action:@selector(handleSingleTapOnFooter:)];
singleTap.numberOfTapsRequired = 1;
[self.footerView addGestureRecognizer:singleTap];
[singleTap release];
self.tableView.tableFooterView = self.footerView;

//Later on, implement the corresponding method
- (IBAction) handleSingleTapOnFooter: (UIGestureRecognizer *) sender {
    NSLog(@\"The footer was tapped!\");
    // code to add an entry to the table here
}
footerView是我在视图控制器的nib文件中创建的UIView,并附加到视图控制器中的UIView插座。 我想一个更好的解决方案是在UITableView本身上设置一个轻击手势识别器,并使用代码来识别轻击的位置是否在最后一个单元格之后。如果可以尝试,我将进行更新。     
UINavigationBar
作为
tableHeaderView
添加到您的
TableView
中怎么样?栏中右侧的按钮可能是“新建”按钮。
UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithTitle:@\"NEW\" style:UIBarButtonItemStyleDone target:self action:@selector(newEntry)];
UINavigationItem *navi = [[UINavigationItem alloc] init];
navi.title = @\"my table title\";
[navi setRightBarButtonItem:newButton];
UINavigationBar *bar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, widthOfMyTableview, heightOfRow)];
[bar setItems:[NSArray arrayWithObject:navi]];

...

myTableView.tableHeaderView = bar;
[newButton release];
[navi release];
[bar release];
    

要回复问题请先登录注册