Swift - 搜索条(UISearchBar)的用法
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
|
import UIKit class ViewController : UIViewController , 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 // 注册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 !) { // 没有搜索内容时显示全部组件 if searchText == "" { self .ctrlsel = self .ctrls } else { // 匹配用户输入内容的前缀 self .ctrlsel = [] for ctrl in self .ctrls { if ctrl.lowercaseString.hasPrefix(searchText) { self .ctrlsel.append(ctrl) } } } // 刷新Table View显示 self .tableView.reloadData() } // 搜索代理UISearchBarDelegate方法,点击虚拟键盘上的Search按钮时触发 //func searchBarSearchButtonClicked(searchBar: UISearchBar!) { //searchBar.resignFirstResponder() //} override func didReceiveMemoryWarning() { super .didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } |
--- Main.storyboard ---
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
|
<? xml version = "1.0" encoding = "UTF-8" standalone = "no" ?> < document type = "com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version = "3.0" toolsVersion = "6254" systemVersion = "14B25" targetRuntime = "iOS.CocoaTouch" propertyAccessControl = "none" useAutolayout = "YES" useTraitCollections = "YES" initialViewController = "BYZ-38-t0r" > < dependencies > < plugIn identifier = "com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version = "6247" /> </ dependencies > < scenes > <!--View Controller--> < scene sceneID = "tne-QT-ifu" > < objects > < viewController id = "BYZ-38-t0r" customClass = "ViewController" customModule = "SwiftInAction_008_012" customModuleProvider = "target" sceneMemberID = "viewController" > < layoutGuides > < viewControllerLayoutGuide type = "top" id = "y3c-jy-aDJ" /> < viewControllerLayoutGuide type = "bottom" id = "wfy-db-euE" /> </ layoutGuides > < view key = "view" contentMode = "scaleToFill" id = "8bC-Xf-vdC" > < rect key = "frame" x = "0.0" y = "0.0" width = "600" height = "600" /> < autoresizingMask key = "autoresizingMask" widthSizable = "YES" heightSizable = "YES" /> < subviews > < tableView clipsSubviews = "YES" contentMode = "scaleToFill" fixedFrame = "YES" alwaysBounceVertical = "YES" dataMode = "prototypes" style = "plain" separatorStyle = "default" rowHeight = "44" sectionHeaderHeight = "22" sectionFooterHeight = "22" translatesAutoresizingMaskIntoConstraints = "NO" id = "eUR-Ky-A8I" > < rect key = "frame" x = "6" y = "32" width = "320" height = "440" /> < color key = "backgroundColor" white = "1" alpha = "1" colorSpace = "calibratedWhite" /> < searchBar key = "tableHeaderView" contentMode = "redraw" id = "8pv-hH-OQ9" > < rect key = "frame" x = "80" y = "218" width = "320" height = "44" /> < autoresizingMask key = "autoresizingMask" flexibleMaxX = "YES" flexibleMaxY = "YES" /> < textInputTraits key = "textInputTraits" /> < connections > < outlet property = "delegate" destination = "BYZ-38-t0r" id = "0l9-UU-iHJ" /> </ connections > </ searchBar > < connections > < outlet property = "dataSource" destination = "BYZ-38-t0r" id = "o1t-B2-xHp" /> < outlet property = "delegate" destination = "BYZ-38-t0r" id = "p1t-kn-J9Q" /> </ connections > </ tableView > </ subviews > < color key = "backgroundColor" white = "1" alpha = "1" colorSpace = "custom" customColorSpace = "calibratedWhite" /> </ view > < connections > < outlet property = "searchBar" destination = "8pv-hH-OQ9" id = "B0M-ya-PE5" /> < outlet property = "tableView" destination = "eUR-Ky-A8I" id = "YCI-P6-0gY" /> </ connections > </ viewController > < placeholder placeholderIdentifier = "IBFirstResponder" id = "dkx-z0-nzr" sceneMemberID = "firstResponder" /> </ objects > </ scene > </ scenes > </ document > |
上一篇Swift - 将表格UITableView滚动条移动到底部
Swift - 搜索条(UISearchBar)的用法的更多相关文章
- iOS 搜索条使用详解
在ios开发中搜索条的使用挺常见的,不过之前一直没用到也没细细研究,最近做外包项目的时候刚好用到,在这里记录一下使用的过程,只要理解了原理,其实还是比较简单的!上传的图片有点大,刚好可以看清楚它的使用 ...
- UI UISearchBar UISearchDisplayController实现搜索条、解析颜色
本文转载至 http://blog.sina.com.cn/s/blog_bf2d33bd01017q6l.html @interface ThirdViewController : UIViewCo ...
- 使用CSS3和jQuery可伸缩的搜索条
使用CSS3和jQuery可伸缩的搜索条 helloweba.com 作者:月光光 时间:2013-12-09 21:23 标签: CSS3 jquery 搜索条在我们网站是必不可少的,尤其是在有限的 ...
- 模仿京东顶部搜索条效果制作的一个小demo
最近模仿京东顶部搜索条效果制作的一个小demo,特贴到这里,今后如果有用到可以参考一下,代码如下 #define kScreenWidth [UIScreen mainScreen].bounds.s ...
- 一个漂亮的DIV搜索条
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【转】 Pro Android学习笔记(五十):ActionBar(3):搜索条
目录(?)[-] ActionBar中的搜索条 通过Menu item上定义search view 进行Searchable的配置 在activity中将search view关联searchable ...
- 20个Flutter实例视频教程-第10节: 一个不简单的搜索条-1
20个Flutter实例视频教程-第10节: 一个不简单的搜索条-1 视频地址: https://www.bilibili.com/video/av39709290/?p=10 博客地址: https ...
- Swift - 带结果列表的搜索条(UISearchDisplayController)的用法
(注:自iOS8起,苹果便废弃UISearchDisplayController的使用,改为使用UISearchController来实现类似功能,可参考我的另一篇文章“Swift - 使用UISea ...
- Swift - 进度条(UIProgressView)的用法
1,创建进度条 1 2 3 4 var progressView=UIProgressView(progressViewStyle:UIProgressViewStyle.Default) progr ...
随机推荐
- SQL SERVER 2008R2sp1配置Database Mail –用SQL 数据库发邮件
步骤1)创建配置文件和帐户 看图片吧,挺简单的: 中间略过的一些步骤,就点下一步即可. 下面我们测试一下: Step 2)配置邮件: 在完成账户和配置文件创建之后,我们需要配置Database Mai ...
- 线程:Message和Runnable
原文地址http://blog.csdn.net/flowingflying/article/details/6370184 程序需要相应用户的操作,最要能在200ms(0.2s)之内,如果超过5秒没 ...
- silentScroll() 滚屏
jQuery.mobile.silentScroll( yPos ) 滚动到一个特定的Y坐标位置,没有触发涡旋的事件监听器 yPos:Y坐标.类型:数字.默认值: //滚屏到y 100px处 $.mo ...
- Laravel创建Model
它已被用于CI框架.最近学习使用Laravel框架,要总结一些遇到的问题是一个创纪录,供以后调用.此外,我希望能够碰到同样的问题的朋友的帮助. 在Laravel数据库表是根据Laravel写好的程序去 ...
- HDU Wolf and Rabbit
Description There is a hill with n holes around. The holes are signed from 0 to n-1. A rabbit must h ...
- WCF技术剖析之五:利用ASP.NET兼容模式创建支持会话(Session)的WCF服务
原文:WCF技术剖析之五:利用ASP.NET兼容模式创建支持会话(Session)的WCF服务 在<基于IIS的WCF服务寄宿(Hosting)实现揭秘>中,我们谈到在采用基于IIS(或者 ...
- properties 文件的中文转ASCII
在软件开发过程中,经常要涉及到多语言支持问题,常用的解决方案是将各个语言文字放到properties文件中,但中文是需要转为ASCII的 .那么如何将中文进行转换呢,下面就为你列举几种比较方便的方法 ...
- HDU 2544 最短
链接:http://acm.hdu.edu.cn/showproblem.php? pid=2544 解析: 首先数据量为V<=100 那么这里使用不论什么基础的最短路的算法都不会超时! 常见数 ...
- 关于SQL中Between语句查询日期的问题
在CSDN找到了相同的问题描述和解决方法: 问题: 我的表某个字段是Datetime型 以" YYYY-MM-DD 00:00:00" 存放 如 A 2009-01-22 21 ...
- Thymeleaf Javascript 取值
<script th:inline="javascript"> var openid = /*[[${session.wxuser.openId}]]*/ </s ...