如何解决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,widthOfMyTableview,heightOfRow)];
[bar setItems:[NSArray arrayWithObject:navi]];
...
myTableView.tableHeaderView = bar;
[newButton release];
[navi release];
[bar release];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。