3

IRC クライアント iOS アプリケーションを作成しています。「メッセージの送信」UIViewControllerが、基本的に組み込みの iOS テキスト メッセージング アプリのメッセージ送信ビューとまったく同じように機能することを望みます。特に、私が話しているビューは、Messagesアプリを開いて右上の [新しいメッセージ] アイコンをクリックしたときに表示されるビューです。次のようになります。

これは私にはどのように見えますか:

これは、上部UIViewControllerに があるように見えますUIToolbar。それを超えて、私は残りが何であるかを理解できません。これは にUITableView基づくフォームのようには見えません。なぜなら、空の行セパレーターが表示されず、この領域ではテーブル ビューで見られるように指でドラッグできないからです。UILabelつまり、そのプラス記号の、UITextFieldおよび画像またはボタンを備えた、ある種のコンテナのように見えます。

入力用のテキスト領域は、ある種のフッター領域の内側のように見えUITextView、「To:」ヘッダーの下端に達するまで垂直に成長します。この時点で、テキスト領域は拡大するのではなく、スクロールを開始します。

選択した人の名前の後ろの緑。これは何ですか?これはカスタマイズさUILabelれた .

実際、これらのものは何ですか?

私は iOS 開発の初心者なので、これらが何であるかを知りたいとは思っていません。このテキスト メッセージング アプリで使用されているコンポーネントは何ですか? それが表ベースのフォームでない場合、それは何ですか? そのようにキーボードの上に置かれ、上に達するまで成長するフッターのようなものをどのように作成しますか?

明確にするために、この後に発生する実際のチャット バブル画面は必要ありません。これを単純なメッセージ送信ビューとして再作成したいと思います。チャット バブル用のビルド済みパッケージは必要ありません。この姿を再現するしかないですね、本当に。

4

3 に答える 3

1

Apple は、この問題に対する統一された解決策を提供していません。アプリでほぼ同じ要件に直面したためです。Three20 フレームワークは、私たちがかつて使用したソリューションを提供しました。しかし、Three20 はもはやメンテナンスされていないようで、私たちのビルドから削除するほどのトラブルを引き起こしました。

最終的に、探しているビュー (または非常に類似したもの) をゼロから作成しました。難しかったし、私たちのコードはまだきれいではありません。Messages および Mail アプリの Apple のコードも見栄えがよくないか、API に組み込まれていたのではないかと思います。おそらく彼らはいつかそれをするでしょうが、今のところあなたは痛みを受け入れて自分でやります.

更新: 別のオープンソース ソリューションについては、こちらを参照してください。

http://cocoacontrols.com/platforms/ios/controls/acanichat

まったく評価していません。

于 2013-01-02T22:04:44.777 に答える
1

Apple がこれらの各要素を実装するために何を使用することを選択したかを正確に言うことはできません (それらのいくつかを行うにはいくつかの方法があると確信しています)。

受信者リスト:

  • フレームが受信者のUITextField「バブル」と追加ボタンの間に制限されている (受信者が追加されるたびにサイズが変更される) です。
  • 各受信者の「バブル」のカスタムUIViewコンテナーのセット。受信者名が含まれ、その下に緑色の「バブル」を含むUILabelストレッチャブルの上に重ねられます (ストレッチ可能な画像の作成については、こちらを参照してください)。UIImageView
  • UIButton追加ボタンの A
  • これらはすべて a の中に含まれていUITableViewCellます (メッセージのリストも含める予定がない場合は、これを行う必要はないでしょう)。

メッセージ フィールド:

  • UITextView新しい行が追加または削除されるとフレームのサイズが変更され、そのサイズ (およびキーボードのサイズ) がツールバーの上部に達するとスクロールが開始される、テキスト入力用の です。
  • UIButton送信ボタンの A
  • UIButtonカメラボタンのA
  • すべてがカスタムUIViewに含まれており、画面の下部にフッターとして実装されています (ただし、もちろんキーボードの上にあります)。

繰り返しますが、これは私がどのように設計するかの大まかなドラフトに過ぎません。これは Apple が行う方法ではない可能性があり、あなたのユースケースでは必ずしも機能しない可能性があります。

于 2013-01-03T03:04:29.773 に答える
1

Apple は、この問題に対する統一された解決策を提供していません。アプリでほぼ同じ要件に直面したためです。Three20 フレームワークは、私たちがかつて使用したソリューションを提供しました。しかし、Three20 はもはやメンテナンスされていないようで、私たちのビルドから削除するほどのトラブルを引き起こしました。

最終的に、探しているビュー (または非常に類似したもの) をゼロから作成しました。難しかったし、私たちのコードはまだきれいではありません。Messages および Mail アプリの Apple のコードも見栄えがよくないか、API に組み込まれていたのではないかと思います。おそらく彼らはいつかそれをするでしょうが、今のところあなたは痛みを受け入れて自分でやります.

于 2013-01-02T21:54:24.177 に答える