話不多說,直接上效果圖
使用方法
導入項目
代碼地址:https://github.com/shangjie119/SJPopMenu.git
將SJPopMenu文件夾拖入到工程或者使用pod導入工程
pod 'SJPopMenu'
這個組件降低與原工程的耦合度,幾乎不需要改動原工程代碼。
使用
- 顯示: [[SJPopMenu menu] showBy:xxxxxx]
- 需實現(xiàn) SJCustomSelectTextView 里面方法,如果是自定義textView,只需將 SJCustomSelectTextView 的父類改為項目使用的textView即可
- 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];
}
}
- 點擊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>