2
我有一個UITableView有兩個動態行。每行都是UITableViewCell的子類,並從nib加載。由於我行包含動態內容,我用layoutSubviews重新定位的所有子視圖:設置動態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的高度:heightForRowAtIndexPath:方法。
訣竅是我從nib加載單元格,所以在它被加載之後,titleLabel.bounds.size.width是300 px(如在nib中),沒有考慮到設備類型(iPhone/iPad)和當前方向,所以看起來不可能在沒有對定向和設備類型進行有條件檢查的情況下計算高度。有任何想法嗎?
先接受一些答案。 – mvds 2011-01-06 14:28:21
你完全可以不說話。任何問題? – HiveHicks 2011-01-06 14:40:56