【问题标题】:UISearchController's search bar overlaps first tableview cellUISearchController 的搜索栏与第一个 tableview 单元格重叠
【发布时间】:2015-03-25 19:16:15
【问题描述】:

我正在使用UISearchController,UISearchBar 也有一个范围栏。搜索栏作为子视图添加到位于UItableView 上方的UIView。我这样做是因为我希望即使在滚动表格视图时搜索栏也始终可见。

问题是范围栏与第一个 tableview 单元格重叠

故事板

范围栏与表格视图单元格重叠

如何防止这种重叠?,我无法在导航栏中显示搜索栏,因为放置在导航栏中的范围栏没有显示。

【问题讨论】:

  • 你可以尝试设置tableView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0),这会将tableView的内容向下推64点......你应该将它设置为范围栏的大小......
  • @chuthan20 我应该在哪里尝试设置这个,当 UISearchController 激活时是否有触发方法?
  • 您可以将您的视图控制器设置为 UISearchController 的代理,https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISearchControllerDelegate_Ref/index.html

标签: uitableview swift ios8 uisearchcontroller


【解决方案1】:

这对我有用:

在表格视图标题中具有搜索显示控制器和搜索栏。在 TableViewController 中添加 heightForHeaderInSection。

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 44; //I used the 44, the height of SearchBar
}

在您的情况下,您还需要添加范围栏高度。 现在它将始终保持基本高度。

【讨论】:

    【解决方案2】:

    这对我有用:

    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
        if (self.searchController.active) {
            return 44; // with scope
        } else {
            return 0; // no scope
        }
    }
    

    【讨论】:

    • 为我工作!对于带有部分的表,当搜索控制器未激活时,我更改为“返回 20;// 无范围”。因为当为 0 时,这会隐藏部分标题。
    【解决方案3】:

    在 UIViewController 上添加搜索栏和表格视图,如下图所示。不要将搜索栏与表格视图重叠。我在我的应用程序中使用它,它对我来说工作正常。

    【讨论】:

    • 我能够按照 cmets 中的建议使用 UIEdgeInsetsMake 使其工作。我的设置与您在图像中所做的完全一样,但这不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    相关资源
    最近更新 更多