我创建了一个tableview,我在uitableviewcell中添加了两个uitextview,它运行良好但数据在我加载时不显示完整数据,当我滚动tableview时加载,数据将在单元格中显示。所以任何人都可以告诉我。是问题,并告诉我如何为textview
制作灵活的单元格长度 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier ];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
RSSEntry *entry = [_allEntries objectAtIndex:indexPath.row];
NSString *articleDateString = [dateFormatter stringFromDate:entry.articleDate];
txtView1 = [[UITextView alloc]initWithFrame:CGRectMake(0, 10, 320,100)];
txtView1.text =entry.articleTitle;
txtView1.editable = NO;
txtView1.font = [UIFont systemFontOfSize:20];
txtView1.textColor = [UIColor blackColor];
txtView1.delegate = self;
txtView1.textAlignment = UITextAlignmentLeft;
txtView1.scrollEnabled = NO;
int a= entry.articleSummary.length;
if(a < 100)
{
txtView2 = [[UITextView alloc]initWithFrame:CGRectMake(0, 70, 320, 100)];
}
else if(a <200)
{
txtView2 = [[UITextView alloc]initWithFrame:CGRectMake(0, 70, 320, 300)];
}
else
{
txtView2 = [[UITextView alloc]initWithFrame:CGRectMake(0, 70, 320, 400)];
}
txtView2.text = entry.articleSummary;
txtView2.editable = NO;
txtView2.font = [UIFont systemFontOfSize:16];
txtView2.textColor = [UIColor blackColor];
txtView2.delegate = self;
txtView2.textAlignment = UITextAlignmentLeft;
[cell.contentView addSubview:txtView1];
[cell.contentView addSubview:txtView2];
return cell;
}
答案 0 :(得分:0)
根据您的NSString
sizeWithFont:constrainedToSize
重新调整UITableViewCell
高度的大小:
- (CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGSize textSize = {245.0, 20000.0f};
CGSize size1 = [text1 sizeWithFont:[UIFont systemFontOfSize:11.0f]
constrainedToSize:textSize
lineBreakMode:UILineBreakModeWordWrap];
CGFloat hight = MAX(size1.height, 28);
return hight;
}
答案 1 :(得分:0)
我认为你的方法不够好。您正在将UITextView添加到UITableCell,它应该在块中:if (cell == nil)
。我希望你使用自定义UITableView。你会找到一个教程here并且要保持UITableCell的大小,你应该使用heightForRowAtIndexPath
委托方法。
答案 2 :(得分:0)
这段代码相当草率。首先,我可能会完全重新做这件事。你最好创建一个自定义的UITableViewCell子类,而不是像这样动态添加视图。
使用您当前的代码,您会遇到许多不同的问题,包括一些看起来您尝试通过删除IOS“重用”表格单元格来修复(错误)的问题。这将大大减慢你的应用程序,特别是如果有很多行。
因此,重构代码以便您使用自定义UITableViewCell。这是第一步。
更改上面的代码,以便您现在使用重用标识符,但不会动态添加任何不必要的视图(它们都应添加到自定义表视图单元类中)。
之后,您需要实现@SenithilKumar建议的方法,这将调整单元格的大小以适应其中的所有文本。
答案 3 :(得分:0)
我在一天的尝试后遇到同样的问题,重新加载数据,smart load数据,解决方案在didfinishLaunching中添加了self.window.rootViewController = navController;
UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:vc];
[self.window addSubview:navController.view];
快乐的编码.. :)