IOS开发 Tableview长按弹出菜单,类似android的popwindow
来源:互联网 发布:音量增大软件 中文版 编辑:程序博客网 时间:2024/05/16 04:20
在viewDidLoad方法中添加如下代码:
//给列表添加长按手势
UILongPressGestureRecognizer *lpress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];
lpress.minimumPressDuration = 1;
lpress.delegate = self;
[self.tableViews addGestureRecognizer:lpress];//tableViews是uitableview的变量
[lpress release];
要实现@selector(longPress:)中的longPress方法,当然方法名自定义即可
//长按列表项弹出菜单
- (void)longPress:(UILongPressGestureRecognizer *) gestureRecognizer {
CGPoint location = [gestureRecognizer locationInView:tableViews];//用来确定长按列表项时鼠标的位置
if (gestureRecognizer.state == UIGestureRecognizerStateBegan){
UIMenuController *menuController = [UIMenuController sharedMenuController];
//menu1、menu2、menu3、menu4必须要实现,否则也会出现无法显示对应的item的情况
UIMenuItem *menuItem1 = [[UIMenuItem alloc] initWithTitle:@"菜单1" action:@selector(menu1)];
UIMenuItem *menuItem2 = [[UIMenuItem alloc] initWithTitle:@"菜单2" action:@selector(menu2)];
UIMenuItem *menuItem3 = [[UIMenuItem alloc] initWithTitle:@"菜单3" action:@selector(menu3)];
UIMenuItem *menuItem4 = [[UIMenuItem alloc] initWithTitle:@"菜单4" action:@selector(menu4)];
ListCell *cell = (ListCell *)gestureRecognizer.view;//你tableview的cell
[cell becomeFirstResponder];
[menuController setMenuItems:[NSArray arrayWithObjects:menuItem1,menuItem2,menuItem3,menuItem4,nil]];
[menuController setTargetRect:CGRectMake(location.x, location.y, 50, 50) inView:tableViews];//location.x, location.y分别为长按那点的x和y坐标 tableViews为将要展示弹出框的视图
[menuController setMenuVisible:YES animated:YES];
[menuItem1 release];
[menuItem2 release];
[menuItem3 release];
[menuItem4 release];
}
}
实现了这些代码,菜单还不会弹出,这个纠结了我好长时间。。
//确保UIMenuItem可以弹出,必须重写该方法,返回yes,否则菜单不显示
-(BOOL) canBecomeFirstResponder{
return YES;
}
- IOS开发 Tableview长按弹出菜单,类似android的popwindow
- iOS tableView多选,长按弹出菜单
- 长按tableview弹出相关菜单
- Android中popWindow弹出菜单的编写
- 一个底部弹出Popwindow的效果(类似Ios)
- 【Android】创建Popwindow弹出菜单
- android meun 菜单的使用(长按弹出菜单)
- 【Android】创建Popwindow弹出菜单的两种方式
- 【Android】创建Popwindow弹出菜单的两种方式
- 【Android】创建Popwindow弹出菜单的两种方式
- 【Android】创建Popwindow弹出菜单的两种方式
- 【Android】创建Popwindow弹出菜单的两种方式
- Android 创建Popwindow弹出菜单的两种方式
- 【Android】创建Popwindow弹出菜单的两种方式
- 【Android】创建Popwindow弹出菜单的两种方式
- 【Android】创建Popwindow弹出菜单的两种方式
- TextView长按自由选择复制,弹出popwindow菜单,划线,删除线,做笔记
- Android点击菜单键(menu)弹出popWindow
- MySQL函数
- XML解析技术之VTD-XML 简介及代码实例 .
- 5月13日待办事
- org.apache.zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:218
- 安装Ubuntu 13.04后要做的六件事
- IOS开发 Tableview长按弹出菜单,类似android的popwindow
- GCD介绍(一): 基本概念和Dispatch Queue
- java内存回收相关
- Reader与Stream的区别
- struct与unin的区别
- 如何在Oracle中查找伪游标PSEUDO_CURSOR
- 钛元素的网盘资源-数据库
- GCD介绍(二): 多核心的性能
- C语言中的位域