仿微信消息長按氣泡菜單

話不多說,直接上效果圖

gif效果圖

使用方法

導入項目

代碼地址:https://github.com/shangjie119/SJPopMenu.git

SJPopMenu文件夾拖入到工程或者使用pod導入工程

pod 'SJPopMenu'

這個組件降低與原工程的耦合度,幾乎不需要改動原工程代碼。

使用

  1. 顯示: [[SJPopMenu menu] showBy:xxxxxx]
  2. 需實現(xiàn) SJCustomSelectTextView 里面方法,如果是自定義textView,只需將 SJCustomSelectTextView 的父類改為項目使用的textView即可
  3. controller中需實現(xiàn)3個方法并且發(fā)送通知,使?jié)L動時正確顯示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];
    }
}
  1. 點擊menu action回調使用 menu.itemActions

對比微信實現(xiàn)效果

1、長按自動選擇所有文本 ?

2、選中部分文字增加全選功能 ?

3、選中部分文字目前支持 復制 轉發(fā) 都要用選中部分文本 ?

4、亂拖選中文本 menu位置要變化(手松開才顯示menu好像做不到,改成menu位置實時變化)? ?

5、拖動當前cell滑動隱藏menu,停止滑動顯示menu (改成滑動就隱藏menu)?

6、微信顯示menu時,再收到消息暫時不顯示新消息,menu消失時新消息才出來(改成接收新消息滑動,取消menu。微信只要按住聊天頁面,新消息都不會馬上刷新出來,感覺這個需要耦合度較高,所以未做)?

7、長按顯示菜單 再長按 過程 菜單取消 手指松開 微信選中一部分 (改成手指松開,還是全選) ?

8、顯示菜單 有時點其他區(qū)域 textView還是全選中狀態(tài) ??? 這是個bug!! 偶現(xiàn) 愁人ing…… ?

image.png

點擊紅色區(qū)域,menu不會消失,目前沒有好方法。

歡迎交流

如果對上面問題有解決思路,歡迎交流。
可以通過github issue我.

使用中如果有其他問題,也可以互相交流。

最后再放個下載地址

喜歡的請給個小????!?。?/p>

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容