iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用搜索显示控制器的刷新控制显示在搜索栏的上方大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经实现了一个简单的表视图控制器,通过Interface Builder拖出了搜索显示控制器.然后我启用了刷新,以便用户下拉刷新时可以看到刷新控件.

问题是,当搜索栏位于搜索栏下方时,它可以在搜索栏的顶部看到.

我知道原因是最小搜索风格.如果使用认的Prominent样式,则问题不存在.

当你慢慢拉下来时,你会看到第一行显示搜索栏的上方,如下所示:
  

如果你继续拉动,它会显示在你期望的位置,但是如果你在视图仍然刷新的同时将视图重新推回,你会在搜索栏顶部看到微调器,如下所示:

一旦你将它向上推,使得微调器触及第一节头,旋转器立即消失.

这就是它应该看起来的样子,就像在Mail中一样 – 位于搜索栏下方:

我试图通过简单地使微调器位于搜索栏下方来解决问题,这样它就不会出现在顶部,但是这不起作用.奇怪的是,该代码导致微调器在桌面上方的灰色区域中不可见,如果你将其向上推,它会出现搜索栏的上方 – 与我期望的完全相反.这是代码

self.refreshControl.layer.zPosition = self.searchDisplayController.searchBar.layer.zPosition - 1;

使用最小样式时,如何防止微调器出现在搜索栏的顶部?

解决方法

解决UISearchBarStyleMinimal的此错误,您必须为任何图像设置BACkgroundImage属性.仅当设置了背景图像时,布局才能正常运行.

private extension UISearchBar {
    private func setBACkgroundColorWithImage(color: UIColor) {
        let rect = self.bounds
        UIGraphicsBeginImageContext(rect.sizE)
        let context = UIGraphicsGetCurrentContext()
        CGContextSetFillColorWithColor(context,color.CGColor)
        CGContextFillRect(context,rect);

        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        self.BACkgroundImage = image // here!
    }
}

大佬总结

以上是大佬教程为你收集整理的ios – 使用搜索显示控制器的刷新控制显示在搜索栏的上方全部内容,希望文章能够帮你解决ios – 使用搜索显示控制器的刷新控制显示在搜索栏的上方所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。