2010-11-25 3 views
0

Я ищу мнения о наилучшем способе реализации следующих функций. У меня есть UIViewController с UITableView в групповом формате. Каждый TableViewCell содержит NSString. Когда пользователь нажимает на ячейку, я хотел бы, чтобы в моем методе didSelectRowForIndexPath появилось UIView с одним текстовым полем, это предварительно заполнено NSString в данной ячейке, которая была выбрана. Причиной отображения UIVIew является то, что я хочу, чтобы он составлял около 280 x 380 кадров и все еще видел некоторые из UITableView.Показать пользовательский UIView В верхней части UIViewController

Целью является то, что она ведет себя как 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

Я думаю, что вы можете использовать «addSubView» в UITableView. Добавьте ModalView непосредственно в UITableView. Это будет работать.

0

Используйте анимацию для реализации этого эффекта. Когда появится UIView, он поднимет UITableView, как и поведение клавиатуры. Таким образом, вы должны addSubView на self.view и изменить кадр UITableView. И UITableView должен быть дочерним представлением self.view, если self.view совпадает с UITableView, тогда у вас нет self.view для добавления этого UIView.