IOS開發仿微信消息長按氣泡菜單實現效果
正文
話不多說,直接上效果圖
使用方法
導入項目
代碼地址:github.com/shangjie119…
將SJPopMenu
文件夾拖入到工程或者使用pod導入工程
pod 'SJPopMenu'
這個組件降低與原工程的耦合度,幾乎不需要改動原工程代碼。
使用
- 顯示: [[SJPopMenu menu] showBy:xxxxxx]
- 需實現 SJCustomSelectTextView 裡面方法,如果是自定義textView,隻需將 SJCustomSelectTextView 的父類改為項目使用的textView即可
- controller中需實現3個方法並且發送通知,使滾動時正確顯示menu
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ [[NSNotificationCenter defaultCenter] postNotificationName:@"SJChangePopMenuIfNeeded" object:nil]; } - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { [[NSNotificationCenter defaultCenter] postNotificationName:@"SJShowPopMenuIfNeeded" object:nil]; } - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { if (!decelerate) { [[NSNotificationCenter defaultCenter] postNotificationName:@"SJShowPopMenuIfNeeded" object:nil]; } }
- 點擊menu action回調使用 menu.itemActions
對比微信實現效果
1、長按自動選擇所有文本 ✅
2、選中部分文字增加全選功能 ✅
3、選中部分文字目前支持 復制 轉發 都要用選中部分文本 ✅
4、亂拖選中文本 menu位置要變化(手松開才顯示menu好像做不到,改成menu位置實時變化)✅ ❌
5、拖動當前cell滑動隱藏menu,停止滑動顯示menu (改成滑動就隱藏menu)✅
6、微信顯示menu時,再收到消息暫時不顯示新消息,menu消失時新消息才出來(改成接收新消息滑動,取消menu。微信隻要按住聊天頁面,新消息都不會馬上刷新出來,感覺這個需要耦合度較高,所以未做)✅
7、長按顯示菜單 再長按 過程 菜單取消 手指松開 微信選中一部分 (改成手指松開,還是全選) ✅
8、顯示菜單 有時點其他區域 textView還是全選中狀態 ??? 這是個bug!! 偶現 愁人ing…… ❌
點擊紅色區域,menu不會消失,目前沒有好方法。
以上就是IOS開發仿微信消息長按氣泡菜單實現效果的詳細內容,更多關於OS 消息長按氣泡菜單的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- iOS實現無感知上拉加載更多功能的思路與方法
- iOS開發TableView網絡請求及展示預加載實現示例
- iOS仿高德首頁推拉效果實例代碼
- iOS UIScrollView和控制器返回手勢沖突解決方法
- iOS實現多控制器切換效果