美文网首页
IOS11--UINavigationItem大标题,搜索栏实现

IOS11--UINavigationItem大标题,搜索栏实现

作者: 向日葵的夏天_summer | 来源:发表于2017-09-28 18:27 被阅读0次

IOS11--UINavigationItem大标题,搜索栏实现

效果图:

IOS11-大标题实现.gif

实现过程

UINavigationItem新增的属性
  1. largeTitleDisplayMode,控制大标题的显示,取值:automatic,always,never

    @available(iOS 11.0, *)
    open var largeTitleDisplayMode: UINavigationItem.LargeTitleDisplayMode
     
     //必须配合使用navigationBar新增属性 prefersLargeTitles
    @available(iOS 11.0, *)
    open var prefersLargeTitles: Bool
    
  2. searchController,显示搜索栏,

     @available(iOS 11.0, *)
     open var searchController: UISearchController?  
     
     //滑动时候是否隐藏导航栏上的搜索栏
     @available(iOS 11.0, *)
     open var hidesSearchBarWhenScrolling: Bool
     
     //同时需要设置definesPresentationContext = true,不然进入searchResult控制器时,看不到搜索栏   
    
代码实现
import UIKit

class ViewController: UIViewController {

var tableView: UITableView!
var searchVC: UISearchController!
var searchResultVC: SearchResultViewController = SearchResultViewController()
var datasArr:[String] = ["1","2","3","4","5","2","3","4","5","2","3","4","5","2","3","4","5"]

override func viewDidLoad() {
    super.viewDidLoad()
    definesPresentationContext = true
    view.backgroundColor = UIColor.white
    self.navigationItem.title = "largeTitle"

    if #available(iOS 11.0, *) {
        self.navigationItem.largeTitleDisplayMode = UINavigationItem.LargeTitleDisplayMode.automatic
    self.navigationController?.navigationBar.prefersLargeTitles = true
        searchVC = UISearchController(searchResultsController: searchResultVC)
        searchVC.searchBar.placeholder = "请输入搜索内容"
        searchVC.searchResultsUpdater = self
        searchVC.delegate = self
        self.navigationItem.searchController = searchVC
        self.navigationItem.hidesSearchBarWhenScrolling = true
    }
    setupTableView()
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
}

func setupTableView() -> Void {
    tableView = UITableView(frame: view.bounds)
    tableView.register(UITableViewCell.self, forCellReuseIdentifier: "CellID")
    tableView.delegate = self
    tableView.dataSource = self
    view.addSubview(tableView)
}
}

extension ViewController: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return datasArr.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "CellID")
    cell?.textLabel?.text = datasArr[indexPath.row]
    return cell!
}
}

extension ViewController: UISearchResultsUpdating, UISearchControllerDelegate {
func updateSearchResults(for searchController: UISearchController) {

}
}

class SearchResultViewController: UITableViewController {

var resultTableView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()
    
    
  
    tableView.register(UITableViewCell.self, forCellReuseIdentifier: "resultCellID")
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 10
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "resultCellID")
    cell?.textLabel?.text = "result\(indexPath.row)"
    return cell!
}

}

相关文章

  • 2021-10-14

    IOS11--UINavigationItem大标题,搜索栏实现 https://www.jianshu.com/...

  • IOS11--UINavigationItem大标题,搜索栏实现

    IOS11--UINavigationItem大标题,搜索栏实现 效果图: 实现过程 UINavigationIt...

  • 简单模仿AppbarLayout的滑动功能

    前言 最近自己想实现一个类似AppBarLayout滑动的功能,上面一个标题栏,标题栏下面有个搜索框,在下面有个R...

  • 第一天总结

    测试的内容 1.界面 标题 title 地址栏 url 图片 logo 文本title标题 工具栏 搜索栏 导航栏...

  • Android笔记——如何将软键盘的回车键改为搜索键

    为简化搜索栏,很多APP取消了搜索键,将软键盘的回车键改为搜索键实现搜索,以下是实现步骤: 一、在作为搜索栏的Ed...

  • Android实战:美食项目(三)

    搜索栏功能实现 TypeAdapter代码这里要实现的功能:点击搜索栏中的type名称,系统就会将type类型进行...

  • iOS11新特性

    [TOC] iOS11 大标题 iOS11 导航栏搜索框 iOS11 Safe Area Insets UITab...

  • Android

    顶部导航栏 仿京东搜索 顶部导航栏 今日头条导航栏 导航栏快速实现 瀑布流 搜索框带历史记录 tablayout ...

  • Android Toolbar上SearchView的实现

    正文 我们在很多app上面都可以发现标题栏上有一个搜索按钮,点击之后会自动展开,我们就可以搜索,这个是怎么实现呢,...

  • 学习HM微博项目第2天

    步骤:导航栏主题 -> 添加搜索框 -> 易混淆的属性 -> 自定义搜索框 -> 标题按钮 -> 弹出...

网友评论

      本文标题:IOS11--UINavigationItem大标题,搜索栏实现

      本文链接:https://www.haomeiwen.com/subject/udevextx.html