Objective c UITextView到UITableViewCell

Objective c UITextView到UITableViewCell,objective-c,uitableview,insert,resize,uitextview,Objective C,Uitableview,Insert,Resize,Uitextview,我是诺布。我需要在UITableViewCell中插入UITextView,并动态调整大小,然后直接在单元格中键入。请帮我解决这个问题 这不是标准UITableView的工作原理。如果您正试图实现添加/编辑/删除项目,则有一种定义的方法 我建议您仔细阅读(特别是“插入和删除行和节”部分),因为这将使您走上正确的轨道 当然,您可以创建自定义视图等。如果您确实想允许用户在单元格中键入内容,但作为一个自认的“noob”,我不建议您尝试这样做,除非您对上述方法更有信心,等等。您需要在UITableVie

我是诺布。我需要在UITableViewCell中插入UITextView,并动态调整大小,然后直接在单元格中键入。请帮我解决这个问题

这不是标准UITableView的工作原理。如果您正试图实现添加/编辑/删除项目,则有一种定义的方法

我建议您仔细阅读(特别是“插入和删除行和节”部分),因为这将使您走上正确的轨道


当然,您可以创建自定义视图等。如果您确实想允许用户在单元格中键入内容,但作为一个自认的“noob”,我不建议您尝试这样做,除非您对上述方法更有信心,等等。

您需要在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;
}

我不一定同意这一点。如果您正在实现一个供用户输入的表单,该怎么办?带有UITextFields的tableview绝对是一个很好的解决方案,事实上苹果公司经常使用它(例如,当你在iPhone上添加新联系人时).我只是在想,对于初学者来说,在创建自定义视图之前,了解标准的做事方式将是一个很好的起点。初学者应该学习标准(正确)的做事方式。然而,当他们提出更高级的问题时,我们在这里给他们提供更高级的答案。@W Dyson-这样做的好处是,OP现在在一个页面上都有很好的链接。:-)+1很好的参考实现。(对初学者来说可能有点多,但要有目标。)别担心@Constantine。如果您对答案感到满意,请将问题标记为已回答,因为这有助于提高我和您在社区中的声誉。谢谢你应该将Rog的回答标记为已接受,这样这个问题就结束了。(您和Rog都将获得声誉积分。)