1

我需要使它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 本身。我怎样才能得到它?

4

4 回答 4

1

对于dynamic tableview height. 您需要应用动态框架。

例如,

myTable.frame = CGRectMake(x,y,w,[row count] * 44);

其中 44 是 tableview 单元格的默认大小

因此,您需要知道每个单元格的高度,以便应用它。

享受编程

于 2012-11-19T06:18:29.510 回答
0

你试试下面的代码

CGRect tblFrame = [tableView frame];
[tableView setFrame:CGRectMake(tblFrame.origin.x, 
                                tblFrame.origin.y, 
                                tblFrame.size.width, 
                                tblFrame.size.height + 20)];
于 2012-11-19T06:16:22.587 回答
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;
}
于 2012-11-19T06:16:24.950 回答
0

首先你可以得到你的内容(文本)高度,然后根据这个高度你可以调整你的 tableView 框架。

CGSize size = [@"Your string" 
               sizeWithFont:[UIFont fontWithName:@"TimesNewRomanPS-BoldMT" size:22] 
               constrainedToSize:CGSizeMake(320, CGFLOAT_MAX)];
于 2012-11-19T06:22:06.977 回答