0

を含むセルの高さを動的に再計算しようとしていますUITextView。セルの高さは UITextView の高さに依存します。

以下のソース コードは、テーブル内の各セルの高さを再計算します。これは からの一部のテキストですNSDictionary。すべての高さが再計算された後、配列 heightCells に含まれる新しい高さでテーブル ビューをリロードします。

UITextView *tempTextView = [[UITextView alloc] init];
UIFont *font = [UIFont fontWithName:@"Helvetica" size:16.0];
[tempTextView setFrame:CGRectMake(10, 63, 300, 9999)];
[tempTextView setFont:font];
NSString *str =  [d valueForKey:@"definition"]; // set long text
tempTextView.text = str;
CGRect frame = tempTextView.frame;
frame.size.height = tempTextView.contentSize.height + 20.0;
tempTextView.frame = frame;
[tempTextView sizeToFit];
int height = tempTextView.frame.size.height + 150.0; // set padding 150.0 px
[heightCells addObject:[NSNumber numberWithFloat:height]];

UITableView方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return [[heightCells objectAtIndex:indexPath.row] floatValue];
}

網膜ディスプレイではなく、すべてが正常に機能し、高さが正しく再計算されましたが、網膜ディスプレイでは再計算に問題があります。網膜ではなく網膜には 320x480 ポイントのビューが 1 つあり、再計算には影響しないはずです。しかし、私の場合、これは表示されます。

以下のスクリーンショットをご覧ください。スクリーンショットでわかるように、共有ボタンの後の下部のパディングは、Retina ディスプレイではなく Retina ディスプレイで異なります。そして、私はこの問題の種類を知りません。

網膜

網膜ではない

手伝ってくれてありがとう!

4

1 に答える 1

1

tempTextView上に載せるとフレームが違うようですUITableViewCellこの回答で私の作業テクニックを説明しました。

于 2012-05-12T22:57:02.023 に答える