tableviewcell中的Textview被覆盖

Posted

技术标签:

【中文标题】tableviewcell中的Textview被覆盖【英文标题】:Textview in tableviewcell getting overwritten 【发布时间】:2014-06-02 14:49:12 【问题描述】:

我有一个表格视图,我想在其中填充一些推文。我有一个文本视图,我使用它在每个表格视图单元格中填充推文的内容。但是,此文本视图已被覆盖。有人可以看看我下面的代码,如果我犯了任何错误,请告诉我?

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"FeedCell" forIndexPath:indexPath];

    NSDictionary *tweet = tweetArray[indexPath.row];

    NSString *tweetText = tweet[@"text"];

    CGSize stringSize = [tweetText sizeWithFont:[UIFont boldSystemFontOfSize:15] constrainedToSize:CGSizeMake(320, 9999) lineBreakMode:UILineBreakModeWordWrap];

    textV=[[UITextView alloc] initWithFrame:CGRectMake(5, 5, 290, stringSize.height+5)];

    textV.font = [UIFont systemFontOfSize:15.0];

    textV.text = tweetText;

    textV.textColor = [UIColor blackColor];
    textV.editable = NO;

    [cell.contentView addSubview:textV];

    return cell;

【问题讨论】:

【参考方案1】:

您的推文很少,因此不要去队列(即重复使用单元格),而是创建新单元格。使用以下代码:

UITableViewCell *cell = (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:nil];        
    if (cell == nil) 
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
    
NSDictionary *tweet = tweetArray[indexPath.row];

NSString *tweetText = tweet[@"text"];

CGSize stringSize = [tweetText sizeWithFont:[UIFont boldSystemFontOfSize:15]     constrainedToSize:CGSizeMake(320, 9999) lineBreakMode:UILineBreakModeWordWrap];

textV=[[UITextView alloc] initWithFrame:CGRectMake(5, 5, 290, stringSize.height+5)];

textV.font = [UIFont systemFontOfSize:15.0];

textV.text = tweetText;

textV.textColor = [UIColor blackColor]; textV.editable = NO;

[cell.contentView addSubview:textV];

        return cell; 

希望对你有帮助。

【讨论】:

如果我有 20 条推文,可以创建一个新单元格而不是出列它吗? 是的,没关系,您最好重用不在视图中的单元格,而不是创建。你在这里使用故事板吗?

以上是关于tableviewcell中的Textview被覆盖的主要内容,如果未能解决你的问题,请参考以下文章

无法在自定义 TableViewCell 中编辑 UITextView

内视图自动调整外视图大小

ios swift在textView单元格中显示/隐藏元素并清除其空间

完成在单元格内编辑 textview 后向 tableview 添加另一个单元格

ivew Table 固定列设置后,底部拖拽的横轴被覆盖拉不动

coredata 获取数组的元素