UITextView在UITableViewCell上不可编辑

时间:2014-12-29 06:53:16

标签: ios uitableview

这可能是个愚蠢的问题, 我搜索了这个地段并找到了多个答案。但没有帮助我很多

我正在UItextView添加UITableViewCell。 (不是自定义单元格)

这是我的代码

UITextView *ansTextV = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height)];
ansTextV.editable = YES;
ansTextV.backgroundColor = [UIColor redColor];
[ansTextV setFont:[UIFont fontWithName:@"OpenSans" size:25]];
[cell.contentView addSubview:ansTextV];
[ansTextV release];

UITextView不可编辑。 但同时我在self.view上添加此文本视图时,它是可编辑的。 但不是UITableView

我检查了UITableview互动和UITableViewCell可编辑。 但是没有用。

我做错了什么。 谢谢你的帮助

7 个答案:

答案 0 :(得分:0)

试试这个:

[tableView setUserInteractionEnabled:YES];
[cell setUserInteractionEnabled:YES];
[ansTextV setEditable:YES];
[ansTextV setUserInteractionEnabled:YES];

顺便说一下,我认为可能还有其他问题。

UITextView *ansTextV = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height)];

检查cell.frame.size.width&的大小。 cell.frame.size.height

希望这会有所帮助.. :)

答案 1 :(得分:0)

如果它在UIView上添加时正常工作,那么您的委托设置正确,所以现在尝试:

cell.userinteractionenabled=YES;
yourTableView.userenterationEnabled=YES;

可能会对你有用。

答案 2 :(得分:0)

adding return Cell cellForRowAtIndexPath Method之前尝试[cell.contentView bringSubviewToFront:ansTextV]; 以下一行。

{{1}}

答案 3 :(得分:0)

在viewDidLoad()方法中,尝试以下代码:

[self.view setUserInteractionEnabled:YES];
[self.tableView setUserInteractionEnabled:YES];

同样在您的cellForRowAtIndexPath()方法中,请尝试以下代码:

[cell setUserInteractionEnabled:YES];
[cell.contentView setUserInteractionEnabled:YES];
[cell.contentView addSubview:ansTextV];
[cell.contentView bringSubviewToFront:ansTextV];
[ansTextV setUserInteractionEnabled:YES];
[ansTextV setEditable:YES];

答案 4 :(得分:0)

我认为你必须在某事物的背后添加,意味着使其可用,你必须把它带到前面试试这个:

[yourTableViewName bringSubviewToFront:yourTextView];

这会将你的backView带到前面,它将是可执行的。

答案 5 :(得分:0)

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"CellIdentifier";
    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    UITextView *ansTextV = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height)];
    ansTextV.editable = YES;
    ansTextV.backgroundColor = [UIColor redColor];
    [ansTextV setFont:[UIFont fontWithName:@"OpenSans" size:25]];
    [cell.contentView addSubview:ansTextV];
    ansTextV=nil;

    return cell;
}

我已经为它制作了示例代码。 我使用了storyboard并在viewcontroller上添加了tableview plz检查屏幕截图enter image description here

答案 6 :(得分:0)

一个已知问题是,当单元格的 contentView.isUserInteractionEnabled 默认设置为 true 时,您必须在 cellForRow 中将其设置为 false,以便响应者链到达您的 {{1 }}:

UITextField