文章来源:淘论文网   发布者: 毕业设计   浏览量: 30

定做请加QQ:1052602713 或加微信:


还可以点击去查询以下关键词:
[Swift]    [类似于]    [美团]    [支付]    [城市]    [选择器]    [拼音]    [查询]    [Swift 类似于美团/支付宝 城市选择器带拼音查询]   

项目介绍:

1. 分析原型

要做的页面是一个UITableView加UISearchController

2. UITabelView

UITableView就分为四种cell 使用.plain类型就好

普通城市就可以用自带的cell

热门城市 当前城市和最近城市就必须自定义cell了

在数据源方法里采用indexPath创建不同种类cell即可

数据通过加载plist文件即可

    /// 懒加载 城市数据     lazy var cityDic: [String: [String]] = { () -> [String : [String]] in         let path = Bundle.main.path(forResource: 'cities.plist', ofType: nil)         let dic = NSDictionary(contentsOfFile: path ?? '') as? [String: [String]]         return dic ?? [:]         }()     /// 懒加载 热门城市     lazy var hotCities: [String] = {         let path = Bundle.main.path(forResource: 'hotCities.plist', ofType: nil)         let array = NSArray(contentsOfFile: path ?? '') as? [String]         return array ?? []     }() 3. UISearchController

创建查询控制器

    /// 查询控制器     lazy var searchVC: UISearchController = {        let searchVc = UISearchController(searchResultsController: self.searchResultVC)         searchVc.delegate = self         searchVc.searchResultsUpdater = self         // 不隐藏导航条         searchVc.hidesNavigationBarDuringPresentation = false         searchVc.definesPresentationContext = true         // 是否关闭蒙版         searchVc.dimsBackgroundDuringPresentation = false         searchVc.searchBar.frame = CGRect(x: 0, y: 0, width: ScreenWidth - 114, height: 44)         searchVc.searchBar.placeholder = '输入城市名或拼音搜索'         searchVc.searchBar.delegate = self         return searchVc     }()     /// 查询结果控制器     lazy var searchResultVC: ResultTableViewController = ResultTableViewController()

UISearchBar加到导航条里若需修改查询条的width就必须先用一个view去接收再添加到导航条上

let titleView = UIView(frame: searchVC.searchBar.frame)         titleView.addSubview(searchVC.searchBar)         self.navigationItem.titleView = titleView

查询逻辑 (支持拼音查询)

先判断searchBar.text是否含有中文字符,开题报告,如果有
    - 将其转为拼音 根据首字母在cityDic['首字母']里遍历查找

    - 把数据传给searchResultsController显示数据即可

若没有中文字符则进行拼音查询
   - 根据searchBar.text的首字母  将cityDic['首字母']里转换为无空格的拼音遍历查找即可

   - 需要实现bj => 北京 wh=> 武汉此类查询则分别获取两字的首字母即可
   - 查询不区分大小写则调用String里的uppercased()和lowercased()对应将字符串转为大写和小写

中文转拼音

func chineseToPinyin() -> String {         let stringRef = NSMutableString(string: self) as CFMutableString         // 转换为带音标的拼音         CFStringTransform(stringRef,nil, kCFStringTransformToLatin, false)         // 去掉音标         CFStringTransform(stringRef, nil, kCFStringTransformStripCombiningMarks, false)         let pinyin = stringRef as String         return pinyin     }

github地址:
https://github.com/SoolyChristy/SoolyCitySelector
论文


这里还有:


还可以点击去查询:
[Swift]    [类似于]    [美团]    [支付]    [城市]    [选择器]    [拼音]    [查询]    [Swift 类似于美团/支付宝 城市选择器带拼音查询]   

请扫码加微信 微信号:sj52abcd


下载地址: http://www.taolw.com/down/7465.docx
  • 上一篇:相册,photobro定制wser,相册管理器
  • 下一篇:CCPScr定制ollView