带有加载指示器的 UISearchController

2024-03-20

我实施了UISearchController我正在从 js 回调获取数据,但是当我录入searchbar放入数据需要一些时间,所以我想知道如何实现加载indicator进入表查看结果UISearchController


用 Swift 3 编写了这个扩展,看起来效果很好。

extension UISearchBar {

    private var textField: UITextField? {
        return subviews.first?.subviews.flatMap { $0 as? UITextField }.first
    }

    private var activityIndicator: UIActivityIndicatorView? {
        return textField?.leftView?.subviews.flatMap{ $0 as? UIActivityIndicatorView }.first
    }

    var isLoading: Bool {
        get {
            return activityIndicator != nil
        } set {
            if newValue {
                if activityIndicator == nil {
                    let newActivityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .gray)
                    newActivityIndicator.transform = CGAffineTransform(scaleX: 0.7, y: 0.7)
                    newActivityIndicator.startAnimating()
                    newActivityIndicator.backgroundColor = UIColor.white
                    textField?.leftView?.addSubview(newActivityIndicator)
                    let leftViewSize = textField?.leftView?.frame.size ?? CGSize.zero
                    newActivityIndicator.center = CGPoint(x: leftViewSize.width/2, y: leftViewSize.height/2)
                }
            } else {
                activityIndicator?.removeFromSuperview()
            }
        }
    }
}

搜索结果控制器上的加载指示器 https://i.stack.imgur.com/N2Y4D.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有加载指示器的 UISearchController 的相关文章

随机推荐

  • python-pandas 和 mysql 等数据库

    Pandas 的文档提供了大量处理以各种格式存储的数据的最佳实践示例 然而 我找不到任何使用 MySQL 等数据库的好例子 任何人都可以向我指出链接或提供一些如何使用转换查询结果的代码片段mysql python有效地处理 Pandas 中
  • 在 ReactJS 中解析 JSON 数据

    我有这样的数据 movies abridged cast characters Dominic Toretto id 162652472 name Vin Diesel characters Brian O Conner id 162654
  • 按周分组并选择本周的记录

    我一直在尝试使用 MySQL 显示每周销售结果表 其中一周的结果应如下所示 Sun Mon Tues Wed Thur Fri Sat 所以我继续使用这个查询 SELECT DATE FORMAT cart calendar datefie
  • 如何使用 Java 连接到 Active Directory

    我使用的是Weblogic Ejb3 0 爪哇1 6 我需要通过 Java 代码访问 Active Directory 我读到了几种方法 Kerberos LDAP 有人可以建议我以舒适的方式这样做吗 我在哪里可以有一些完整的代码示例 谢谢
  • 检查 jolt 中是否为 null 或为空,并输入输入 JSON 中存在的另一个值

    这是我的输入 JSON AddressBilling FirstName Some Name LastName Some Name Address some address AddressShipping FirstName LastNam
  • 纯函数式语言中的高效堆

    作为 Haskell 的练习 我正在尝试实现堆排序 在命令式语言中 堆通常被实现为数组 但这在纯函数式语言中效率非常低 因此 我研究了二进制堆 但到目前为止我发现的所有内容都是从命令式的角度描述它们的 并且所提出的算法很难转化为函数设置 如
  • 访问扩展的background.js的控制台和开发工具

    我刚刚开始使用 Google Chrome 扩展 但似乎无法从后台 js 登录到控制台 当发生错误时 例如 由于语法错误 我也找不到任何错误消息 我的清单文件 name My First Extension version 1 0 mani
  • GWT 中的本机 Javascript 方法

    我的 GWT Java 类之一中有一个本机 Javascript 方法 但我在从本机 Javascript 代码调用我的 Java 方法时遇到问题 我试着跟随this http code google com webtoolkit doc
  • 设置多个 geom_sf 图例的格式

    我正在 ggplot 中处理多个 sf 几何图形 并希望以点 线和正方形 对于多边形 的形式显示图例 然而 geom sf 图例结合了我的几何特征 即结合线和点 如下所示 library ggplot2 library sf poly1 l
  • 如何在 PySpark 中过滤 MapType 中的键?

    给定一个如下的 DataFrame 是否可以过滤掉 Column 的一些键收藏PySpark 中的 MapType StringType StringType True 同时保持架构完整 root id string nullable tr
  • Common Lisp 中的属性列表是否引用某些全局状态?

    下面的代码有z作为局部变量 但它的行为就像全局变量一样 defun foo m let z stuff nil push m getf z stuff print z foo 1 foo 2 foo 3 我希望输出是 STUFF 1 STU
  • GLFW 的线程设置

    我开始使用新的 Lwjgl 3 它使用 GLFW 进行显示 鼠标 键盘处理 我真的很喜欢它 然而今天我碰上了砖头 我有一个简单的渲染动画 但是当我拖动屏幕时 它停止渲染 直到我再次放开 According to http www glfw
  • MySQL 视图中的 BLOB 而不是正确的数据

    我使用创建了一个 MySQL 视图UNION ALL从两个表中 这样我就可以为这些表中的相同数据获得相同的列名 即tbl1 author2 AS translator tbl2 translator AS translator 等等 问题是
  • JavaScript 中的字谜查找器

    我应该用 JavaScript 编写一个程序来查找所提供的一系列单词中的所有字谜 例如 monk konm nkom bbc cbb dell ledl llde 输出应分为几行 1 monk konm nkom 2 bbc cbb 3 d
  • java读取远程文件需要用户名和密码

    我正在尝试用java读取远程文件 File f new File 192 168 1 120 home hustler file txt 远程计算机需要用户名和密码才能访问该文件 有没有办法可以通过java代码传递参数并读取文件 packa
  • 启用/禁用时的 JTextField 背景颜色

    当它被禁用时 我将 JTextField 的背景颜色更改为黑色 我这样做是使用UIManager以及我在应用程序启动时设置的这个属性 TextField disabledBackground 我想知道再次启用 JTextField 时如何更
  • 使用带有括号的 my 并且只有一个变量

    我有时会看到这样的 Perl 代码 my variable blah 在单个变量两边加上括号有什么意义 我认为括号仅在声明多个变量时使用 例如 my var1 var2 var3 blah 出现差异时有以下几种情况 When array在右
  • Javadoc 失败,找不到 java.lang.FunctionalInterface 的类文件

    我正在尝试使用 Android Studio 生成 Javadoc 在 Eclipse 下工作正常 但在 Android Studio 下出现错误 javadoc 错误 com sun tools doclets internal tool
  • 计算三级缓存的实际/有效CPI

    a 给定一个具有两级高速缓存 L1 和 L2 的内存系统 以下是规格 L1缓存命中时间 2个时钟周期 一级缓存命中率 92 L2 缓存的未命中惩罚 L2 的命中时间 8 个时钟周期 二级缓存命中率 86 主存丢失惩罚 37 个时钟周期 暂时
  • 带有加载指示器的 UISearchController

    我实施了UISearchController我正在从 js 回调获取数据 但是当我录入searchbar放入数据需要一些时间 所以我想知道如何实现加载indicator进入表查看结果UISearchController 用 Swift 3