zoukankan      html  css  js  c++  java
  • Swift

    1,搜索条Options属性还可设置如下功能样式:

    Shows Search Results Button:勾选后,搜索框右边显示一个圆形向下的按钮,单击会发送特殊事件。
    Shows Bookmarks Button:勾选后,搜索框右边会显示一个书本的按钮,单击会发送特殊事件。
    Shows Cancel Button:勾选后,搜索框右边会出现一个“Cancel”按钮,单击会发送特殊事件。
    Shows Scope Bar:勾选后,会在搜索条下面出现一个分段控制器。
    原文:Swift - 搜索条(UISearchBar)的用法

    2,下面是一个搜索条的使用样例,功能如下:
    (1)在Main.storyboard界面里拖入一个 Search Bar 和一个 Table View,Search Bar放到Table View的页眉位置
    (2)初始化或者搜索条为空时,表格显示所有数据
    (3)搜索条不为空时,表格实时过滤显示匹配的项目
     
    3,效果图
         原文:Swift - 搜索条(UISearchBar)的用法      原文:Swift - 搜索条(UISearchBar)的用法
     
    4,代码如下
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    import UIKit
     
    class ViewControllerUIViewController,UISearchBarDelegate,
    UITableViewDataSource,UITableViewDelegate {
         
        // 引用通过storyboard创建的控件
        @IBOutlet var searchBar : UISearchBar!
        @IBOutlet var tableView : UITableView!
         
        // 所有组件
        var ctrls:[String] = ["Label","Button1","Button2","Switch"]
        // 搜索匹配的结果,Table View使用这个数组作为datasource
        var ctrlsel:[String] = []
         
        override func viewDidLoad() {
            super.viewDidLoad()
             
            // 起始加载全部内容
            self.ctrlsel = self.ctrls
            //设置代理
            self.searchBar.delegate = self
            self.tableView.delegate = self
            self.tableView.dataSource = self
            // 注册TableViewCell
            self.tableView.registerClass(UITableViewCell.self,
                forCellReuseIdentifier: "SwiftCell")
        }
         
        // 返回表格行数(也就是返回控件数)
        func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return self.ctrlsel.count
        }
         
        // 创建各单元显示内容(创建参数indexPath指定的单元)
        func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
            -> UITableViewCell
        {
            // 为了提供表格显示性能,已创建完成的单元需重复使用
            let identify:String "SwiftCell"
            // 同一形式的单元格重复使用,在声明时已注册
            let cell = tableView.dequeueReusableCellWithIdentifier(identify,
                forIndexPath: indexPath) as UITableViewCell
            cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator
            cell.textLabel?.text = self.ctrlsel[indexPath.row]
            return cell
        }
         
        // 搜索代理UISearchBarDelegate方法,每次改变搜索内容时都会调用
        func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
            print(searchText)
            // 没有搜索内容时显示全部组件
            if searchText == "" {
                self.ctrlsel = self.ctrls
            }
            else // 匹配用户输入内容的前缀(不区分大小写)
                self.ctrlsel = []
                for ctrl in self.ctrls {
                    if ctrl.lowercaseString.hasPrefix(searchText.lowercaseString) {
                        self.ctrlsel.append(ctrl)
                    }
                }
            }
            // 刷新Table View显示
            self.tableView.reloadData()
        }
         
        // 搜索代理UISearchBarDelegate方法,点击虚拟键盘上的Search按钮时触发
        /**func searchBarSearchButtonClicked(searchBar: UISearchBar) {
            searchBar.resignFirstResponder()
        }**/
         
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
        }
    }


    原文出自:www.hangge.com  转载请保留原文链接:http://www.hangge.com/blog/cache/detail_562.html

  • 相关阅读:
    [框架] DAO的作用以及和其他层的关联
    [框架] SSH所需要的jar包列表
    DLBBS工作总结
    只不过是R.java文件的特性出错信息:R.java was modified manually! Reverting to generated version!
    [jQuery] jQuery函数
    WebTeam多层系统框架(请高手提意见)
    对象基础知识
    Android 4.0 的软件测试
    顺序存储数据结构java实现
    xp下清除多余的鼠标右键菜单
  • 原文地址:https://www.cnblogs.com/auvxx/p/6699547.html
Copyright © 2011-2022 走看看