2017-09-06 5 views
8

私は、ユーザーがそれぞれにメッセージを送信できるアプリを持っています。このプロセスは、送信されたメッセージをローカルのSQLiteデータベースに保存し、メッセージを実際にデータベースに送信し、プッシュ通知を使用してメッセージを受信者のSQLiteデータベースに送信することによって実現されます。私はセットアップがうまくいきます。しかし、私が混乱しているのは、ユーザの実際の対話型UIを設定する方法です(私はXCodeを使用しています)。私はそれがUITableViewであるはずだと考えました。各テーブルセルはメッセージを表しています。ただ、通常のiOSメッセージングと同様に、TextViewのサイズは、各メッセージのテキストのすべてを合わせてその大きさを調整し、変数にする必要があり
変数のTextViewサイズ
:しかし、このアプローチでは、私はいくつかの要件に遭遇します。私はこれを達成する方法を知らない。私はどのように一般的にはのサイズが異なるが、そのビュー内のテキストに基づいてどのように動的にそれを持っているかを手がかりにする方法の一般的な理解を持っています。
変数のTextView体位
ここでも、普通のiOSメッセージングと同様に、TextViewには、送信者がユーザーまたは誰インクルードは、それぞれ、と会話しているあったかどうかに応じて、右側または左側のどちらかにオフセットする必要があります。また、テキストビューの中心を変更するので、これを行う方法もわかりません。
非選択性
Xcodeでは、セルを押し込むことができます。この選択後の処理は、didSelectRowatIndexPath tableView関数で処理できます。私は単にこれを実装することはできませんが、セルをクリックすると、それが押されたことを示すために暗くなります。テキストの一部を選択してコピーして貼り付けるなどの機能を維持しながら、これを排除したいと考えています。
その他のアプローチ
これは質問の本当の肉です。私はXCodeのUI要素で私の限られた経験に基づいて私が思い付くことができたすべてのものであるため、上記のアプローチを検討しました。この目的のために、より良いアプローチ(おそらくポッドやフレームワーク)があれば、それを聞いてみたいと思うでしょう。メッセージングUIがと驚くほどのように見える必要はありません。きれいで鮮明です。メッセージ機能のために設定された適切なUIは何ですか?

+0

メインライブラリはDEPRECEATEDと宣言されていますが、コミュニティは現在それを使用しているので本当に大きなものですが、 'JSQMessagesViewController'を使うことができます。 https://github.com/jessesquires/JSQMessagesViewController –

+0

@RatulSharkerアプリストアアプリで廃止予定のコードを使用できますか? –

+1

これはオープンソースのパブリッシャーによって非難されているだけで、リンゴのSDKコードのどれもありません。アプリストアの拒否の問題がなくても使用できます。 –

答えて

2

私は次のことをお勧め:

変数のTextViewサイズ:
私はあなたが自動レイアウトを使用行う前提としています。あなたがまだいないなら、それは人生をはるかに簡単にするので、それを使用することを検討してください!
UITableViewを使用する場合は、実際の内容に応じて、UITableViewCellsの高さをセルフサイジングセルを使用して動的に調整できます。あなたはこれを行う方法チュートリアルを見つけることができますhere
可変テキストビューポジション:
テーブルビューのセル内にUITextViewがあるとします。この場合、自動レイアウト制約をセルのcontentViewの罫線に設定する必要があります。 UITableViewCellのカスタムサブクラスを定義した場合、このクラスで左右のレイアウト制約(例:var leftLayoutConstraint: NSLayoutConstraint)にリンクされているプロパティを2 IBOutletに定義できます。次に、セルがレイアウトされたとき、つまりカスタムテーブルビューセルのlayoutSubviews関数で、必要に応じて制約のconstantプロパティを設定できます。
非選択性:
"私は単にこれを実装できません"とはどういう意味でしょうか。 UITableViewdelegateプロパティを、セル選択を処理するビューコントローラに設定していることを確認してください。ストーリーボードでは、テーブルビューのプロトタイプセルを選択し、Xcodeのユーティリティペイン(最右端のボタン)を開きます。 「表ビューセル」の下に「選択」があり、「選択なし」に設定できます。

こちらがお役に立てば幸いです。

関連する問題