ios - UITableView 中没有很多项目的 contentOffset

标签 ios uitableview

我正在向我的 UITableView 添加一个 UISearchBar。与许多应用程序一样,搜索栏最初会隐藏在导航栏后面,直到用户向上滚动,才会显示出来。我使用下面的代码最初隐藏搜索栏,当表格 View 有足够的单元格需要滚动时效果很好,但当表格 View 中只有几个单元格时不隐藏搜索栏。当单元格数量不足以导致表格 View 滚动时,我该如何隐藏搜索栏。

当前代码:

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];

    if (!self.layedOutHeader) {
        CGPoint contentOffset = self.alertsTableView.contentOffset;

        if (contentOffset.y == -64 || contentOffset.y == 0) {
            contentOffset.y += CGRectGetHeight(self.alertsTableView.tableHeaderView.frame);
            self.alertsTableView.contentOffset = contentOffset;
        }

        self.layedOutHeader = YES;
    }

}

这是一个例子,说明当只有几个单元格存在时,搜索栏是如何不隐藏的: enter image description here

最佳答案

当单元格不足时,尝试添加具有所需高度的 tableFooterView 以填充屏幕。

关于ios - UITableView 中没有很多项目的 contentOffset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28446512/

相关文章:

ios - 展开后,在 Xcode 中取消 View 修改

ios - UITableView reloadSections 不触发 viewForFooterInSection?

iphone - 代码适用于 xib,但不适用于 Storyboard

objective-c - Cocoa-Touch – UITableView dequeueReusableCellWithIdentifier 给我错误的单元格数据

swift - 从单元格转换 UIButton 以运行查询并将结果发送到另一个单元格

ios - 动态添加对象到 UITableView 单元格

ios - iPhone XS、iPhone XR 和 iPhone XS Max 的设备代码(平台字符串)是什么?

ios - Foursquare field 搜索 API 返回超出半径的结果

ios - 通用应用程序背景 SpriteKit

css - 我在 iOS 中的网站上的填充过多