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はテーブルビューセルのデフォルトサイズです。

したがって、これを適用するには、各セルの高さを知る必要があります。

プログラミングを楽しむ

于 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 に答える