2010-11-25 107 views
0

我正在尋找關於實現以下功能的最佳方式的意見。我有一個UIViewController與分組格式的UITableView。每個TableViewCell都包含一個NSString。當用戶點擊一個單元格時,我想在我的didSelectRowForIndexPath方法中彈出一個帶有單個文本字段的UIView,該字段在選定的給定單元格中用NSString預填充。顯示UIVIew的原因是我希望它是大約280 x 380幀,仍然可以看到一些UITableView。在UIViewController上顯示自定義UIView

目標是它的行爲像一個ModalViewController除了iPhone。有沒有人有任何建議如何實施這種行爲,或者如果有更好的實施?

回答

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的東西。

+0

謝謝你,這是實現它的好方法。 – aahrens 2010-11-27 03:20:08

0

我想你可以在UITableView中使用「addSubView」。直接將ModalView添加到您的UITableView。它會工作。

0

使用一些動畫來實現這種效果。當UIView出現時,它將解除UITableView,就像某些鍵盤行爲一樣。所以,你必須在self.view上添加SubView並修改UITableView的框架。而且,UITableView應該是self.view的子視圖,如果self.view與UITableView相同,那麼你沒有self.view來添加這個UIView。

相關問題