• 自定义label和搜索框


    拖一个table一个视图控制器即可

    写一个视图控制器myviewcontroller

    import UIKit
    
    class myviewcotrollTableViewController: UITableViewController {
       
        let persons=Person.getData()
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // Uncomment the following line to preserve selection between presentations
            // self.clearsSelectionOnViewWillAppear = false
    
            // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
            // self.navigationItem.rightBarButtonItem = self.editButtonItem()
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
       
    
        override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            // #warning Incomplete implementation, return the number of rows
            return persons.count
        }
    
        override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
           //第一种完全由自己定义
            
    //        var cell = tableView.dequeueReusableCellWithIdentifier("cell")
    //        if cell==nil {
    //           cell = UITableViewCell(style: .Default, reuseIdentifier: "cell")
    //        }
    //        let p = persons[indexPath.row]
    //        let lbl = UILabel(frame: CGRectMake(0, 20, 100, 25))
    //       
    //        cell?.contentView.addSubview(lbl)
    //         lbl.text=p.name
    //  
    //        return cell!
            //第二种直接获取写了一个mycell.xib
    //                var cell = tableView.dequeueReusableCellWithIdentifier("cell")
    //                if cell==nil {
    //                   cell = NSBundle.mainBundle().loadNibNamed("mycell", owner: self, options: nil)[0] as? UITableViewCell
    //                }
    //                let p = persons[indexPath.row]
    //                let lbl=cell?.viewWithTag(100) as? UILabel
    //                lbl?.text = p.name
    //          
    //                return cell!
    //        }
            //第三种:关联一个类,来获取mycell.xib
            var cell=tableView.dequeueReusableCellWithIdentifier("cell") as? mycellcontroller
            if cell == nil {
                //            let xx = NSBundle.mainBundle()
                //                .loadNibNamed("MyCell", owner: self, options: nil)
            cell = NSBundle.mainBundle().loadNibNamed("mycell", owner: self, options: nil)[0] as? mycellcontroller
                
            }
          let p = persons[indexPath.row]
              cell?.mylable.text = p.name
                return cell!
        
        }
        
    }

    mycell.xib如右图创建文件,把lable里的属性设为100

    如下图拖的行和label把其他的东西删掉

    再写一个行的控制,mylable要关联

    @IBOutlet weak var mylable: UILabel!
        override func awakeFromNib() {
            super.awakeFromNib()
        }
        override func setSelected(selected: Bool, animated: Bool) {
            super.setSelected(selected, animated: animated)
        }

    写一个普通的视图实现搜索功能,

    import UIKit
    
    class TableViewController: UITableViewController {
    
        var persons = Person.getData()
        var filterPS = [Person]()
        var sc:UISearchController!
        
        override func viewDidLoad() {
            super.viewDidLoad()
          sc = UISearchController(searchResultsController: nil)
           tableView.tableHeaderView = sc.searchBar
            sc.searchResultsUpdater = self
            filterPS = persons
            
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
      
    
        override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            // #warning Incomplete implementation, return the number of rows
            return filterPS.count
        }
    
        
        override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
            let p = filterPS[indexPath.row]
            
            cell.textLabel?.text=p.name
            return cell
        }
    
    
    
    }
    extension TableViewController: UISearchResultsUpdating{
    
    
        func updateSearchResultsForSearchController(searchController: UISearchController){
          let text = (searchController.searchBar.text)!
              filterPerson(text)
            tableView.reloadData()
        
        }
            func filterPerson(text:String){
            filterPS.removeAll()
                if text.characters.count <= 0 {
                filterPS = persons
                return
                
                }
                for p in persons{
                
                    if p.name.containsString(text){
                    
                    filterPS.append(p)
                    
                    }
                }
            
            }
        

    写一个person 类存数据

    import Foundation
    
    class Person {
        var name: String
        init(name: String) {
            self.name = name
        }
        
        static func getData() -> [Person] {
            return [Person(name: "1111"),
                Person(name: "2222"),
                Person(name: "3333")
            ]
        }
    }
  • 相关阅读:
    计算1的个数
    【环境配置】配置git
    Spoj 9887 Binomial coefficients 构造
    程序猿与HR博弈之:有城府的表达你的兴趣爱好
    C和指针 (pointers on C)——第六章:指针(上)
    关于undo表空间配置错误的ORA-30012
    每天进步一点点——Linux系统中的异常堆栈跟踪简单实现
    javaScript 对象的使用
    手机游戏加密那点事儿_2d资源加密_1
    支持向量机
  • 原文地址:https://www.cnblogs.com/kangniuniu/p/5045660.html
Copyright © 2020-2023  润新知