我只需要使用该方法制作一个具有自动高度计算的 UITableViewCell systemLayoutSizeFittingSize:UILayoutFittingCompressedSize
。在我的视图有 UILabels 和 UIImageViews 之前,一切都很好。当我需要用 UIButton 替换其中一个标签时,该方法没有正确计算大小。
除了 UILabel 之外,我们是否需要向 UIElements 提供一些额外的信息才能正常工作?
最后,我不得不将 TapGestures 添加到 UILabels 以使其工作。
这是单元格视图:
时间“09:00 AM”和位置是这里的标签,如果方法正确给出结果,这些可能是按钮。
这个想法很简单,创建一个屏幕尺寸尽可能小的单元 xib(iPhone 3.5 英寸)。在您的类中单独创建一个 xib 实例,为该实例提供信息(时间、位置等)并运行 systemLayoutSizeFittingSize:UILayoutFittingCompressedSize 方法来计算大小。
_scheduleCell = [[[UINib nibWithNibName:@"HomeScheduleViewCell" bundle:nil] instantiateWithOwner:nil options:nil] objectAtIndex:0];
CGSize fullSize = [_scheduleCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];