0

次の機能を実装する最善の方法について意見を求めています。グループ化された形式の UITableView を持つ UIViewController があります。各 TableViewCell には NSString が含まれています。ユーザーがセルをタップすると、didSelectRowForIndexPath メソッドで、選択された特定のセルに NSString が事前設定された単一のテキスト フィールドを持つ UIView がポップアップ表示されます。UIVIew を表示する理由は、約 280 x 380 フレームにして、UITableView の一部を表示したいからです。

目標は、iPhone を除いて M​​odalViewController のように動作することです。この動作を実装する方法、またはより良い実装があるかどうかについて誰か提案がありますか?

4

3 に答える 3

1

事前に UIView (内部に UITextField を含む) を作成し、非表示にします。

// Of course, these instance variable names are made up, and should be changed
self.myModalView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 280, 380)] autorelease];
[self.view addSubview:self.myModalView]

self.myTextField = [[[UITextField alloc] init] autorelease];
[self.myModalView addSubview:self.myTextField];

self.myModalView.hidden = YES;

次に、ユーザーが行を選択すると、テキスト フィールドにデータが入力され、モーダル ビューが表示されます。

- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath {
  // Replace stringAtIndexPath with however your data source accesses the string
  NSString* myString = [self stringAtIndexPath:indexPath];
  self.myTextField.text = myString;
  self.myModalView.hidden = NO;
}

凝りたい場合は、モーダル ビューを表示する前に CATransition を実行できます。

于 2010-11-25T08:07:08.313 に答える
0

この効果を実装するには、アニメーションを使用します。UIViewが表示されると、キーボードの動作のようにUITableViewが持ち上げられます。したがって、self.viewにSubViewを追加し、UITableViewのフレームを変更する必要があります。また、UITableViewはself.viewの子ビューである必要があります。self.viewがUITableViewと同じである場合、このUIViewを追加するためのself.viewはありません。

于 2010-11-25T07:52:34.480 に答える
0

UITableViewで「addSubView」が使えると思います。ModalView を UITableView に直接追加します。それが動作します。

于 2010-11-25T00:59:09.863 に答える