2010-12-07 2 views
0

I'am noob. Мне нужно вставить UITextView в UITableViewCell с динамическим изменением размера и что я бы набрал прямо в ячейку. Пожалуйста, помогите мне решить эту проблему.UITextView в UITableViewCell

+0

Вы должны отметить ответ Рога как принятый, чтобы этот вопрос был закрыт. (И вы, и Рог тогда будут награждены точками репутации.) – 2010-12-08 13:50:50

ответ

0

Это не то, как стандартный UITableView предназначен для работы. Существует определенный способ добавления/редактирования/удаления элементов, если это то, чего вы пытаетесь достичь.

Я бы рекомендовал хорошо прочитать Table View Programming Guide for iOS (в частности раздел «Вставка и удаление строк и разделов»), так как это приведет вас к правильной дорожке.

Вы можете, конечно, создать пользовательский вид и т. Д., Если вы действительно хотите, чтобы пользователи вводили в ячейку, но, как самонадеянное «noob», я бы не рекомендовал это делать, пока вы не более уверенно с вышеизложенным подходом и т.д.

+1

Я не обязательно согласен с этим. Что делать, если вы реализуете форму для ввода пользователем? Табличное представление с UITextFields, безусловно, является хорошим решением для этого, и на самом деле оно используется Apple совсем немного (например, когда вы добавляете новый контакт на iPhone). – Rog 2010-12-07 21:50:54

+0

Я просто думал, что для новичков, знакомых с обычным способом делать вещи, будет хорошей отправной точкой перед созданием пользовательского представления. – 2010-12-07 21:52:03

7

Вам нужно создать подкласс UITableViewCell с UITextField в нем:

@interface CustomCell : UITableViewCell { 
    UILabel *cellLabel; 
    UITextField *cellTextField; 
} 

@property (nonatomic, retain) UILabel *cellLabel; 
@property (nonatomic, retain) UITextField *cellTextField; 

@end 

А затем реализовать:

@implementation CustomCell 
@synthesize cellLabel, cellTextField; 

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 

    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 

     cellLabel = [[UILabel alloc] initWithFrame:CGRectZero]; 
    ... // configure your label appearance here 

     cellTextField = [[UITextField alloc] initWithFrame:CGRectZero]; 
     ... // configure your textfield appearance here 

    } 

    return self; 
} 

И, наконец, используйте свои пользовательские ячейки на:

- (CustomCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"Cell"; 

    CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
    } 
    ... // configure your cell data source here 
    return cell; 
} 
Смежные вопросы