获取UITableView的高度而不用滚动条
我需要得到UITableView
的全部高度(即没有更多的滚动的高度)。 有没有办法做到这一点?
我试过[tableView sizeThatFits:CGSizeZero]
,但是只返回一个0x0 CGSize
。
尝试contentSize
方法,它是从UITableView的超类UIScrollViewinheritance的。 但是,您可能会发现contentSize
返回的是错误的或过期的值,因此您应该先调用layoutIfNeeded
来重新计算表格的布局。
- (CGFloat)tableViewHeight { [tableView layoutIfNeeded]; return [tableView contentSize].height; }
强制Swift 3.0和2.2的答案。
var tableViewHeight: CGFloat { tableView.layoutIfNeeded() return tableView.contentSize.height }
如果表视图的行数发生了变化,而且确实需要知道包含上次更改的表视图的内容大小,我没有发现layoutIfNeeded方法实际上有帮助。
经过一些黑客攻击后,我开始知道如何强制表格视图重新计算其内容大小。 在我的情况下,这足以重置表视图框架,使其工作:
- (CGSize)com_lohika_contentSize { CGRect theFrame = self.frame; self.frame = CGRectZero; self.frame = theFrame; [self layoutIfNeeded]; return [self contentSize]; }
尝试传递一个不同的CGSize参数,而不是CGSizeZero。 sizeThatFits:方法使用该参数来计算其结果。 尝试从任何类进行调用传递self.view.size。
- 我可以使用CGAffineTransformMakeRotation旋转超过360度的视图吗?
- 导航控制器自定义转换animation
- 编写Objective-C和Cocoa时使用的最佳实践是什么?
- 核心数据实现枚举的最佳方式
- 数据源和委托有什么区别?
- 如何使用kCGImagePropertyGIFImageColorMap或创build一个颜色表?
- 使用objc_msgSend通过命名参数调用Objective C函数
- 如何将UITableViewCellSelectionStyle属性设置为某种自定义颜色?
- 如何设置NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints?