如何将UITextField或UITextView添加到UItableViewCell并编辑内容?

时间:2012-12-04 13:53:03

标签: ios uitableview

我有两个单元格中有tableViewtextField的{​​{1}}。而已。 我在textView添加了它们。 我无法编辑内容! 可能触摸不会传递到文本字段和tableView:cellForRowAtIndexPath:

所有解决方案都要求我使用带有自定义单元类的xib。

所以我必须为两行textView创建两个新类吗?

我不能通过将这些作为子视图添加到正常单元格tableView

来逃脱

其次,如果使用contentView这种布局是过度的,

我需要在带有圆角的矩形边框中的textArea下面tableView以及在它们之间使用普通textView进行分隔的替代方法是什么?

3 个答案:

答案 0 :(得分:0)

您不需要创建2个新类。添加它们就可以了,甚至可以在控制器中保留一个引用。

检查UITableViewUITableViewCell以及UITextFieldUITextView上的userInteractionEnabled。如果禁用视图的用户交互,则每个子视图也会禁用其用户交互。如果要禁用行的选择,只需设置cell.selectionStyle = UITableViewCellSelectionStyleNone;

即可

答案 1 :(得分:0)

您不需要xib来继承UITableViewCell。在这种情况下,添加到内容视图应该没问题,并且不需要子类。它听起来也像你不需要桌面视图。您可能需要的原因是您需要更多这些单元格,否则常规视图控制器可能更合适,更容易实现。

我使用Core Graphics在UIView对象上创建圆角,甚至添加阴影效果,但有一点学习曲线。您可以从互联网上搜索UIView圆角。

答案 2 :(得分:0)

尝试使用此代码

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

    if (indexPath.row == 0){ 
        UITextField *customField = [[UITextField alloc] initWithFrame:CGRectMake(60.0f, 10.0f, 400.0f, 60.0f)]
        customField.autoresizingMask = UIViewAutoresizingFlexibleWidth;
        customField.delegate = self;
        customField.adjustsFontSizeToFitWidth = NO;
        customField.borderStyle = UITextBorderStyleNone;
        customField.autocapitalizationType = UITextAutocapitalizationTypeNone;
        customField.autocorrectionType = UITextAutocorrectionTypeNo;
        customField.enablesReturnKeyAutomatically = YES;
        customField.returnKeyType = UIReturnKeyDefault;
        customField.keyboardType = UIKeyboardTypeDefault;
        [cell addSubview:customField];

    }


    if (indexPath.row == 1){ 
        UITextView *notes = [[UITextView alloc] init];
        notes.editable = YES;
        notes.font = DEFAULT_FONT(16);
        notes.text = infoNotesStr.text;
        notes.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
        notes.backgroundColor = [UIColor blueColor];
        notes.delegate = self;
        CALayer *layers = notes.layer;
        layers.cornerRadius = 10.0f;
        [cell addSubview:notes];

    }

}