我需要让UITaableView
符合其内容。我在UITableView
中加载数组数据。但是当我修复了一些静态大小时,尽管项目较少,但它显示了额外的空间。所以我需要将动态高度设为UITableView
,但无法实现它。
autocompleteTableView = [[UITableView alloc] initWithFrame:CGRectMake(10, 140, 200, self.autocompleteTableView.contentSize.height) style:UITableViewStyleGrouped];
autocompleteTableView.delegate = self;
autocompleteTableView.dataSource = self;
autocompleteTableView.scrollEnabled = YES;
[self.view addSubview:autocompleteTableView];
当我写这篇文章时,我看不到TableView本身......我怎么能得到它?
答案 0 :(得分:1)
dynamic tableview height
。您需要应用动态框架。
对于前,
myTable.frame = CGRectMake(x,y,w,[row count] * 44);
其中44是tableview单元格的默认大小
因此,您需要知道每个单元格的高度,以便应用它。
享受编程
答案 1 :(得分:0)
您尝试以下代码
CGRect tblFrame = [tableView frame];
[tableView setFrame:CGRectMake(tblFrame.origin.x,
tblFrame.origin.y,
tblFrame.size.width,
tblFrame.size.height + 20)];
答案 2 :(得分:0)
在视图中创建表视图之前调用此方法。它计算内容的高度,并返回表格视图的总高度
-(NSInteger)calculateheightOfText{
for (int i=0; i<[yourarray count]; i++) {
NSString *cellText =[yourarray objectAtIndex:i];
UIFont *cellFont = [UIFont fontWithName:@"ArialMT" size:17.0];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
heightOfTableview = heightOfTableview+labelSize.height + 20;
}
heightOfTableview = heightOfTableview +([items count]*35);
return heightOfTableview;
}
答案 3 :(得分:0)
首先,您可以获取内容(文本)高度,然后根据此高度调整tableView框架。
CGSize size = [@"Your string"
sizeWithFont:[UIFont fontWithName:@"TimesNewRomanPS-BoldMT" size:22]
constrainedToSize:CGSizeMake(320, CGFLOAT_MAX)];