Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
适用于iPhone的UITableViewCell中的Popover菜单的任何CoCoapod_Iphone_Uitableview_Popover_Cocoapods - Fatal编程技术网

适用于iPhone的UITableViewCell中的Popover菜单的任何CoCoapod

适用于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

我有一个应用程序正在使用UITableViewController。我尝试为每个单元格实现一个弹出菜单,如下所示(Moke应用程序):

当用户点击一个单元格时,当用户点击一个菜单项时,应用程序将显示弹出菜单。它将触发带有相关单元格信息的操作。例如,indexath

我正在使用来实现此功能。因为PopoverView API需要ShowPopOverattPoint参数,即CGPoint:

[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时启用手势并自动取消

提前谢谢

杰克

  • 我不知道椰子荚到底能做什么

  • 我认为您可以在didSelectRowAtIndexPath方法中使用以下代码:

  • 我对PopoverView知之甚少,我总是使用UIView自己完成这一切
  • 我不知道椰子荚到底能做什么

  • 我认为您可以在didSelectRowAtIndexPath方法中使用以下代码:

  • 我对PopoverView知之甚少,我总是使用UIView自己完成这一切

  • 我找到了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;