2010-11-25 11 views
0

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

それはiPhone以外ModalViewControllerのように振る舞うということでゴール。誰にもこの動作を実装する方法や、より良い実装があるかどうかに関する提案はありますか?

答えて

1

予め(内部UITextFieldの付き)のUIViewを作成し、それは隠されます

// 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; 
} 

あなたが気に入らなければならない場合は、モーダル表示を表示する前にいくつかのCATトランジションを行うことができます。

+0

ありがとうございました。これは、これを実装するための素晴らしい方法でした。 – aahrens

0

私はあなたがUITableViewで "addSubView"を使うことができると思います。 UITableViewにModalViewを直接追加してください。それが動作します。

0

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

関連する問題