iOS開發長按tabbaleVew
實現步驟:
1.給cell新增UILongPressGestureRecognizer和相應處理事件
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
..............
UILongPressGestureRecognizer * longPressGesture = [[UILongPressGestureRecognizer alloc]initWithTarget:selfaction:@selector(cellLongPress:)];
[cell addGestureRecognizer:longPressGesture];
return cell;
}
2.配置和顯示UIMenuController-
(void)cellLongPress:(UIGestureRecognizer *)recognizer{
if (recognizer.state == UIGestureRecognizerStateBegan) {
CGPoint location = [recognizer locationInView:self];
NSIndexPath * indexPath = [self indexPathForRowAtPoint:location];
UIMyTableViewCell *cell = (UIMyTableViewCell *)recognizer.view;
//這裡把cell做為第一響應(cell預設是無法成為responder,需要重寫canBecomeFirstResponder方法)
[cell becomeFirstResponder];UIMenuItem *itCopy = [[UIMenuItem alloc] initWithTitle:@"複製" action:@selector(handleCopyCell:)]; UIMenuItem *itDelete = [[UIMenuItem alloc] initWithTitle:@"刪除" action:@selector(handleDeleteCell:)]; UIMenuController *menu = [UIMenuController sharedMenuController];
[menu setMenuItems:[NSArray arrayWithObjects:itCopy, itDelete, nil]];
[menu setTargetRect:cell.frame inView:self];
[menu setMenuVisible:YES animated:YES];
[itCopy release];
[itDelete release];
}
}
(void)handleCopyCell:(id)sender{//複製cell
NSLog(@"handle copy cell");
}(void)handleDeleteCell:(id)sender{//刪除cell
NSLog(@"handle delete cell");
}
3.在自定義的cell裡重寫canBecomeFirstResponder方法,返回yes
//為了讓選單顯示,目標檢視必須在responder鏈中,很多UIKit檢視預設並無法成為一個responder,因此你需要使這些檢視過載 canBecomeFirstResponder方法,並返回YES
- (BOOL)canBecomeFirstResponder{
return YES;
}
經過這幾步,就可以成功顯示了,又在網上看到一篇講這個的外文,分享一下:
http://www.intridea.com/blog/2010/12/22/developers-notes-for-uimenucontroller
相關文章
- IOS開發之SOCKET長連線的使用iOS
- 安卓開發:listview長按進入多選刪除操作安卓View
- iOS 11開發教程(二十)iOS11應用檢視美化按鈕之設定按鈕的狀態iOS
- iOS 11開發教程(十九)iOS11應用檢視美化按鈕之設定按鈕的外觀iOS
- 短視訊app開發,長按將視訊儲存到相簿APP
- iOS 手勢操作:拖動、捏合、旋轉、點按、長按、輕掃、自定義iOS
- (轉)iOS長按textView複製貼上顯示中文iOSTextView
- iOS開發:給UIWebview的導航欄新增返回、關閉按鈕iOSUIWebView
- iOS 11開發教程(二十一)iOS11應用檢視美化按鈕之實現按鈕的響應(1)iOS
- iOS 11開發教程(十八)iOS11應用檢視之使用程式碼新增按鈕iOS
- iOS開發系列--IOS程式開發概覽iOS
- iOS開發若何更好的限制UITextField的輸入長度?iOSUI
- iOS 開發iOS
- iOS開發iOS
- iOS實現點選圖片放大&長按儲存圖片iOS
- iOS 按鈕動畫iOS動畫
- Jquery實現的Switch開關按鈕(仿iOS開關)jQueryiOS
- 玩轉iOS開發:iOS中的GCD開發(一)iOSGC
- 玩轉iOS開發:iOS中的GCD開發(三)iOSGC
- 玩轉iOS開發:iOS中的GCD開發(二)iOSGC
- 移動端長按儲存、取消長按儲存圖片
- iOS開發:UIAlertViewiOSUIView
- iOS 開發薪水iOS
- iOS開發-沙箱iOS
- 【iOS開發】whoseviewisnotinthewindowhierarchyiOSView
- iOS開發-MVCiOSMVC
- iOS開發- RunLoopiOSOOP
- 【iOS開發】iOS 動畫詳解iOS動畫
- iOS 11開發教程(二十二)iOS11應用檢視實現按鈕的響應(2)iOS
- iOS 11開發教程(十七)iOS11應用檢視之使用按鈕接收使用者輸入iOS
- 玩轉iOS開發:iOS中的NSOperation開發(一)iOS
- 玩轉iOS開發:iOS中的NSOperation開發(二)iOS
- iOS動畫-按鈕動畫iOS動畫
- iOS --按鈕 處理iOS
- QT經驗(一)——按鈕長按事件分析QT事件
- iOS11開發教程(二十三)iOS11應用檢視實現按鈕的響應(3)iOS
- 安卓開發——ListView控制元件(初始化ListView、列表重新整理、長按新增menu)安卓View控制元件
- iOS專案開發實戰——監聽對話方塊的按鈕點選事件iOS事件