适用于iPhone的UITableViewCell中的Popover菜单的任何CoCoapod
我有一个应用程序正在使用UITableViewController。我尝试为每个单元格实现一个弹出菜单,如下所示(Moke应用程序): 当用户点击一个单元格时,当用户点击一个菜单项时,应用程序将显示弹出菜单。它将触发带有相关单元格信息的操作。例如,indexath 我正在使用来实现此功能。因为PopoverView API需要ShowPopOverattPoint参数,即CGPoint:适用于iPhone的UITableViewCell中的Popover菜单的任何CoCoapod,iphone,uitableview,popover,cocoapods,Iphone,Uitableview,Popover,Cocoapods,我有一个应用程序正在使用UITableViewController。我尝试为每个单元格实现一个弹出菜单,如下所示(Moke应用程序): 当用户点击一个单元格时,当用户点击一个菜单项时,应用程序将显示弹出菜单。它将触发带有相关单元格信息的操作。例如,indexath 我正在使用来实现此功能。因为PopoverView API需要ShowPopOverattPoint参数,即CGPoint: [PopoverView showPopoverAtPoint:point inView:self wit
[PopoverView showPopoverAtPoint:point inView:self withContentView:aView delegate:self];
我必须注册UITapgestureRecognitor才能捕获tap事件
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
singleTap.delegate = self;
singleTap.numberOfTapsRequired = 1;
singleTap.numberOfTouchesRequired = 1;
[self.tableView addGestureRecognizer:singleTap];
然后显示弹出框
- (void)handleTap:(UITapGestureRecognizer *)tap {
if (UIGestureRecognizerStateEnded == tap.state) {
UITableView *tableView = (UITableView *)tap.view;
CGPoint p = [tap locationInView:tap.view];
NSIndexPath* indexPath = [tableView indexPathForRowAtPoint:p];
[tableView deselectRowAtIndexPath:indexPath animated:NO];
UIToolbar *toolbar = [[UIToolbar alloc] init];
NSMutableArray* barbuttonsArray = [[NSMutableArray alloc] initWithCapacity:5];
UIBarButtonItem * twitterButton = [[UIBarButtonItem alloc] initWithTitle:@"twitter"
style:UIBarButtonItemStylePlain
target:self
action:@selector(twitterButton:)];
twitterButton.style = UIBarButtonItemStyleBordered;
[barbuttonsArray addObject:twitterButton];
[toolbar setItems:barbuttonsArray animated:NO];
[PopoverView showPopoverAtPoint:p inView:tableView withContentView:toolbar delegate:nil];
}
}
我还在PopoverView中放置了一个UIToolbar,以显示带有一些菜单项的工具栏。在这个实现中,我需要使用UITapGestureRecognizer来处理tap事件。我可以在-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath中执行此操作并获取CGPoint吗?此外,当显示PopoverView时,它会禁用所有其他手势,如滚动或轻触其他单元格。我不希望用户在显示popoverview时点击它。当用户尝试执行其他操作时,PopoverView应该自动关闭,例如:滚动表格视图
重述问题:
1) UITableViewCell中的此弹出菜单是否有cocoapod可用
2) 如果否,我是否可以从didSelectRowAtIndexPath而不是使用UITAPPESTURE识别器获取CGPoint
3) 如何在显示PopoverView时启用手势并自动取消
提前谢谢
杰克
我找到了QBPopMenu。看起来不错。我还在研究它,看看它是否符合我的要求。我找到了QBPopupMenu。看起来不错。我还在努力,看看它是否符合我的要求。谢谢你的帮助。我还需要X来显示箭头。也许我可以让它更简单,只要在用户点击单元格时在顶部显示工具提示。谢谢你的帮助。我还需要X来显示箭头。也许我可以让它更简单,只要在用户点击单元格时在顶部显示工具提示。
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
CGFloat pointY = ((int)(cell.frame.origin.y - tableView.contentOffset.y)/cell.frame.size.height)*cell.frame.size.height;