1

ユーザーがいくつかの異なる入力を選択するアプリを作成しています (実際の例ではありません: 車のブランド、マイル、色)。すべての選択項目には、選択できるいくつかの定義済みの値があり、それぞれ 1 文または 2 文の長さです。これをどのように表示するのが最善なのか疑問に思っています。

一部のオプションは 2 文の長さであるため、ピッカー ビューはうまく機能しません。テーブルを含むモーダルビューまたはプッシュビューを使用できますが、慣習に従って最も「正しい」方法が何であるかわかりませんか? 私がモーダル ビューを使用しているとしましょう。ユーザーがテーブル内の何かを選択したときに、モーダル ビューを自動的に閉じることは規則に反しますか?

編集:自分自身をより明確にするために、以下は私が話している階層の例です。

例

4

1 に答える 1

1

現在のモーダル ビュー コントローラーはいつでも閉じることができます。これを行う「正しい方法」はありません。ユーザーがテーブル ビュー セルを選択すると、UITableViewDelegate メソッドでモーダル ビュー コントローラーを閉じることができます。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

  [tableView deselectRowAtIndexPath:indexPath animated:YES];

  /* dismiss your modal view controller

   through the UIViewController method
   - (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
   or through the UINavigationViewController method
   - (UIViewController *)popViewControllerAnimated:(BOOL)animated

   depending on the way you presented it in the first place. */

}

また、長いテキストを含むオプションを表示するには、テーブル ビューが最適です。UITableViewDelegate メソッドを使用して、テーブル ビューの各セルの高さを調整できます。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
   return /*appropriate cell height in order to accommodate long text */;
}

また、任意のテキストの高さを計算したい場合は、次のように実行できます。

// get the table view width
CGFloat tableViewWidth = [tableView bounds].size.width;

// get your piece of text
NSString *text = /*your text*/

CGFloat textHeight = [text sizeWithFont:[UIFont systemFontOfSize:18]/*or any font you want*/
                      forWidth:tableViewWidth 
                      lineBreakMode:NSLineBreakByWordWrapping].height;
于 2013-03-31T18:39:51.620 に答える