私は2つの動的行を持つUITableViewを持っています。各行はUITableViewCellのサブクラスであり、nibからロードされます。私の行は動的なコンテンツが含まれているとして、私はすべてのサブビューを再配置するlayoutSubviewsを使用します。heightForRowAtIndexPath::メソッド動的UITableViewCellの設定高さ
- (void)layoutSubviews
{
[super layoutSubviews];
CGFloat initialHeight = titleLabel.bounds.size.height;
CGSize constraintSize = CGSizeMake(titleLabel.bounds.size.width, MAXFLOAT);
CGSize size = [titleLabel.text sizeWithFont:titleLabel.font constrainedToSize:constraintSize];
CGFloat delta = size.height - initialHeight;
CGRect titleFrame = titleLabel.frame;
titleFrame.size.height += delta;
titleLabel.frame = titleFrame;
locationLabel.frame = CGRectOffset(locationLabel.frame, 0, delta);
dayLabel.frame = CGRectOffset(dayLabel.frame, 0, delta);
timeLabel.frame = CGRectOffset(timeLabel.frame, 0, delta);
}
問題は、私はテーブルビューのデリゲートののtableViewで高さを決定する方法を見つけることができないということです。
トリックは、nibからセルを読み込むので、titleLabel.bounds.size.widthが300 px(nibのように)で読み込まれた直後で、デバイスのタイプ(iPhone/iPad)と現在のタイプ方向やデバイスタイプの条件チェックを行わずに高さを計算することは不可能です。何か案は?
最初にいくつかの回答を受け入れてください。 – mvds
あなたは何も言うことはできません。どんな問題? – HiveHicks