言うまでもありませんが、直接レンダリングに移動します
指示
輸入プロジェクト
コードアドレス:github.com/shangjie119…
フォルダをプロジェクトにドラッグするSJPopMenu
か、ポッドを使用してプロジェクトをインポートします
pod 'SJPopMenu'
このコンポーネントは、元のプロジェクトとの結合度を減らし、元のプロジェクトコードを変更する必要はほとんどありません。
使用する
- 表示:[[SJPopMenuメニュー] showBy:xxxxxx]
- SJCustomSelectTextViewのメソッドを実装する必要があります。カスタムtextViewの場合は、SJCustomSelectTextViewの親クラスをプロジェクトで使用されるtextViewに変更するだけです。
- コントローラは3つのメソッドを実装し、スクロール時にメニューを正しく表示するために通知を送信する必要があります
- (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.itemActionsを使用してメニューアクションコールバックをクリックします
WeChatの効果の比較
1.長押ししてすべてのテキストを自動的に選択します✅
2.追加するテキストを選択してすべての機能を選択✅
3.現在、テキストの選択された部分はコピーと転送をサポートしています。テキストの選択された部分を使用する必要があります✅
4.選択したテキストをランダムにドラッグして、メニューの位置を変更します(手を離すまでメニューを表示できないようで、メニューの位置がリアルタイムで変更されます)✅❌
5.現在のセルをドラッグしてスライドさせてメニューを非表示にし、スライドを停止してメニューを表示します(スライドに変更してメニューを非表示にします)✅
6. WeChatがメニューを表示する場合、メッセージを受信した時点では新しいメッセージは表示されず、メニューが消えると新しいメッセージが表示されます(新しいメッセージを受信するように変更し、スワイプしてメニューをキャンセルします。AsチャットページでWeChatを押し続けている限り、新しいメッセージがすぐに更新されることはありません。これには高度な結合が必要だと感じたので、行いませんでした)✅
7.表示メニューを長押しし、次にプロセスメニューを長押ししてキャンセルします。指を離してWeChatの一部を選択します(指を離すように変更するか、すべてを選択します)✅
8.メニューを表示します。他の領域のtextViewがまだ選択されている場合がありますか???これはバグです!!たまに人のことを心配する…❌
赤い部分をクリックすると、メニューが消えることはなく、現時点では良い方法はありません。
交換へようこそ
上記の問題の解決策がある場合は、ご連絡ください。githubから発行するか、[email protected]に メールを送信してください。
他に使用上の問題がある場合は、相互に通信することもできます。
最後に、ダウンロードリンクを配置します
あなたがそれを好きなら、小さな⭐️⭐️を与えてください!!!