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 添加另一个单元格