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