【发布时间】:2014-02-11 04:48:10
【问题描述】:
UITableView 报告的contentSize 比使用UISearchBar 时的预期更大。如果单元格为零,则预期的内容高度将为零。相反,以下代码在运行 iOS 7 的 4 英寸 iPhone 中输出 612。
@implementation HPViewController {
UITableView *_tableView;
UISearchBar *_searchBar;
UISearchDisplayController *_searchController;
}
- (void)viewDidLoad
{
[super viewDidLoad];
_tableView = [[UITableView alloc] initWithFrame:self.view.bounds];
_tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:_tableView];
_searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
_searchController = [[UISearchDisplayController alloc] initWithSearchBar:_searchBar contentsController:self];
_searchController.delegate = self;
_searchController.searchResultsDataSource = self;
_tableView.tableHeaderView = _searchBar;
}
- (void)viewDidLayoutSubviews
{
CGSize contentSize = _tableView.contentSize;
NSLog(@"%f", contentSize.height); // 612.000000
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 0; }
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { return nil; };
@end
注释设置标题视图的行会使代码按预期输出 0。
另外,如果我指定一个空的UIView 作为标题,contentSize 将是正确的并且匹配标题的高度。这个问题只发生在UISearchBar。
有没有办法解决这个问题?我是不是做错了什么?
【问题讨论】:
-
我今天在 iOS 11.2 上遇到了同样的问题。表格中有 1 个标题和 1 个单元格,我几乎可以将所有内容滚动到屏幕外。但是,contentSize 具有我在 iOS 10.3.1 上所期望的高度。
标签: ios ios7 uisearchbar uitableview