私は、ユーザーがそれぞれにメッセージを送信できるアプリを持っています。このプロセスは、送信されたメッセージをローカルのSQLiteデータベースに保存し、メッセージを実際にデータベースに送信し、プッシュ通知を使用してメッセージを受信者のSQLiteデータベースに送信することによって実現されます。私はセットアップがうまくいきます。しかし、私が混乱しているのは、ユーザの実際の対話型UIを設定する方法です(私はXCode
を使用しています)。私はそれがUITableView
であるはずだと考えました。各テーブルセルはメッセージを表しています。ただ、通常のiOS
メッセージングと同様に、TextView
のサイズは、各メッセージのテキストのすべてを合わせてその大きさを調整し、変数にする必要があり
変数のTextViewサイズ
:しかし、このアプローチでは、私はいくつかの要件に遭遇します。私はこれを達成する方法を知らない。私はどのように一般的にはのサイズが異なるが、そのビュー内のテキストに基づいてどのように動的にそれを持っているかを手がかりにする方法の一般的な理解を持っています。
変数のTextView体位
ここでも、普通のiOS
メッセージングと同様に、TextViewには、送信者がユーザーまたは誰インクルードは、それぞれ、と会話しているあったかどうかに応じて、右側または左側のどちらかにオフセットする必要があります。また、テキストビューの中心を変更するので、これを行う方法もわかりません。
非選択性
Xcodeでは、セルを押し込むことができます。この選択後の処理は、didSelectRowatIndexPath
tableView関数で処理できます。私は単にこれを実装することはできませんが、セルをクリックすると、それが押されたことを示すために暗くなります。テキストの一部を選択してコピーして貼り付けるなどの機能を維持しながら、これを排除したいと考えています。
その他のアプローチ
これは質問の本当の肉です。私はXCode
のUI要素で私の限られた経験に基づいて私が思い付くことができたすべてのものであるため、上記のアプローチを検討しました。この目的のために、より良いアプローチ(おそらくポッドやフレームワーク)があれば、それを聞いてみたいと思うでしょう。メッセージングUIがと驚くほどのように見える必要はありません。きれいで鮮明です。メッセージ機能のために設定された適切なUIは何ですか?
8
A
答えて
2
私は次のことをお勧め:
変数のTextViewサイズ:
私はあなたが自動レイアウトを使用行う前提としています。あなたがまだいないなら、それは人生をはるかに簡単にするので、それを使用することを検討してください!
UITableView
を使用する場合は、実際の内容に応じて、UITableViewCells
の高さをセルフサイジングセルを使用して動的に調整できます。あなたはこれを行う方法チュートリアルを見つけることができますhere。
可変テキストビューポジション:
テーブルビューのセル内にUITextView
があるとします。この場合、自動レイアウト制約をセルのcontentView
の罫線に設定する必要があります。 UITableViewCell
のカスタムサブクラスを定義した場合、このクラスで左右のレイアウト制約(例:var leftLayoutConstraint: NSLayoutConstraint
)にリンクされているプロパティを2 IBOutlet
に定義できます。次に、セルがレイアウトされたとき、つまりカスタムテーブルビューセルのlayoutSubviews
関数で、必要に応じて制約のconstant
プロパティを設定できます。
非選択性:
"私は単にこれを実装できません"とはどういう意味でしょうか。 UITableView
のdelegate
プロパティを、セル選択を処理するビューコントローラに設定していることを確認してください。ストーリーボードでは、テーブルビューのプロトタイプセルを選択し、Xcodeのユーティリティペイン(最右端のボタン)を開きます。 「表ビューセル」の下に「選択」があり、「選択なし」に設定できます。
こちらがお役に立てば幸いです。
関連する問題
- 1. 不適切に設定されたURL
- 2. 不適切なJDKのためにAdempiereの設定がブロックされました
- 3. UICollectionViewControllerのための適切なMVVMアーキテクチャは何ですか
- 4. Typescriptでテスト可能な関数をエクスポートするための適切なクラス設計は何ですか?
- 5. のWebPACKを実行するためのカルマにNODE_ENVを設定する適切な方法は何ですか?
- 6. RavenDB - 適切なコレクションのためのインデックスを設定するLuceneQuery
- 7. インデックスされたアイテムをオブジェクトに追加するための適切なES6の方法は何ですか?
- 8. Railsでフラグを設定するためのチェックボックスを使用する適切な方法は何ですか?
- 9. MavenがMac上でDockerデーモンと通信するための適切な設定は何ですか?
- 10. ログインとログアウト機能を備えたiPhone用の適切なviewController設定
- 11. Xcode + GitHub。適切な設定は何ですか
- 12. Rails 3.2.2 - プロダクションのメール設定のための適切な場所
- 13. JBossCache:適切なJMX監視のためのuniqueidの設定
- 14. HTMLを適切にPDFに変換するための設定
- 15. 適切なPHP開発のためにemacsを設定するには?
- 16. gitの大きな変更のための適切なワークフローは何ですか?
- 17. 設定されたタイムアウトが機能
- 18. 単純なファイルコピーのための適切なJava Configは何ですか
- 19. データベースコンテキストクラスの適切な設定ですか?
- 20. Celery raise不適切に設定された例外
- 21. iPhone - 計算のための適切なUIコントロール
- 22. ダイナミックWeb UI開発のための適切なアプローチ:テンプレートベース
- 23. 建設機能を持つことは適切ですか?
- 24. pngファイルをビデオファイルに変換するために使用される適切なフレームレートは何ですか?
- 25. Tweepy IDを抽出するために、適切ではない何か
- 26. Reactコンポーネントでリダイレクトを行うための適切なライフサイクルステージは何ですか?
- 27. 大規模なPostgreSQLテーブルでの検索のための適切なインデックス設定
- 28. iPhone - 私のアプリのための適切なオーディオプレーヤーは何ですか?
- 29. スカラ用の中間層サービスのための適切なアプリケーションコンテナは何ですか?
- 30. このための適切なMvcContrib 3の構文は何ですか?
メインライブラリはDEPRECEATEDと宣言されていますが、コミュニティは現在それを使用しているので本当に大きなものですが、 'JSQMessagesViewController'を使うことができます。 https://github.com/jessesquires/JSQMessagesViewController –
@RatulSharkerアプリストアアプリで廃止予定のコードを使用できますか? –
これはオープンソースのパブリッシャーによって非難されているだけで、リンゴのSDKコードのどれもありません。アプリストアの拒否の問題がなくても使用できます。 –