用swift实现tableview的展示

import UIKit


class ViewController:UIViewController,UITableViewDelegate,UITableViewDataSource {


    var baby = ["测试0","测试1","测试2","测试3","测试4","测试5","测试6","测试7","测试8","测试9","测试10","测试11"]

    

    

    var tableView = UITableView()

    var isFlag = [Bool](count :12, repeatedValue: false)

    override func viewDidLoad() {

        super.viewDidLoad()

        tableView = UITableView(frame: CGRectMake(0,0, 320, 600), style: UITableViewStyle.Plain)

        tableView.dataSource =self

        tableView.delegate =self

        self.view.addSubview(tableView)

    }

    

    func numberOfSectionsInTableView(tableView:UITableView) -> Int {

        return 1

    }

    //每一块有多少行

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) ->Int {

        return baby.count

    }

    //绘制cell

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let initIdentifier = "Cell"

        let cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: initIdentifier)

        //下面两个属性对应subtitle

        cell.textLabel?.text =baby[indexPath.row]

        cell.detailTextLabel?.text ="测试\(indexPath.row)"

        

        cell.imageView!.layer.cornerRadius =40

        cell.imageView!.layer.masksToBounds =true

        

        //添加附件

        cell.accessoryType =UITableViewCellAccessoryType.DetailButton

        if isFlag[indexPath.row] {

            cell.accessoryType =UITableViewCellAccessoryType.Checkmark

        }else{

            cell.accessoryType =UITableViewCellAccessoryType.None

        }

        return cell

    }

    

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

        //使用闭包,和嵌套函数或者JAVA中的匿名类类似

        let locationActionHandler = {(action: UIAlertAction!) -> Void in

            let locationAlertController = UIAlertController(title: nil, message: "我是测试\(indexPath.row)", preferredStyle:UIAlertControllerStyle.Alert)

            let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)

            

            locationAlertController.addAction(okAction)

            self.presentViewController(locationAlertController, animated:true, completion: nil)

            

        }

        let alertController = UIAlertController(title: "测试\(indexPath.row)", message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)

        let cancleAction = UIAlertAction(title: "Cancle", style: UIAlertActionStyle.Cancel, handler: nil)

        alertController.addAction(cancleAction)

        

        let locationAction = UIAlertAction(title: "测试是几号", style:UIAlertActionStyle.Default, handler: locationActionHandler)

        alertController.addAction(locationAction)

        

        let markAction = UIAlertAction(title: "标记测试一下", style:UIAlertActionStyle.Default, handler: {(action:UIAlertAction) -> Void in

            let cell = tableView.cellForRowAtIndexPath(indexPath)

            cell?.accessoryType =UITableViewCellAccessoryType.Checkmark

            self.isFlag[indexPath.row] = true//然后每次加载时候在cellForRowAtIndexPath方法进行判断

        })

        alertController.addAction(markAction)

        presentViewController(alertController, animated:true, completion: nil)

    }

    

    func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {

        let shareAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title:"Share", handler: {

            (action: UITableViewRowAction,indexPath:NSIndexPath) -> Voidin

            let menu = UIAlertController(title: nil, message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)

            

            let cancelAction = UIAlertAction(title: "Cancle", style: UIAlertActionStyle.Cancel, handler: nil)

            let facebookAction = UIAlertAction(title: "facebook", style:UIAlertActionStyle.Default, handler:nil)

            

            let twitterAction = UIAlertAction(title: "twitter", style: UIAlertActionStyle.Default, handler: nil)

            menu.addAction(facebookAction)

            menu.addAction(twitterAction)

            menu.addAction(cancelAction)

            self.presentViewController(menu, animated:true, completion: nil)

        })

        let deleteAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title:"Delete", handler: {

            (action: UITableViewRowAction,indexPath:NSIndexPath) -> Voidin

            

            self.baby.removeAtIndex(indexPath.row)

            self.isFlag.removeAtIndex(indexPath.row)

            self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation:UITableViewRowAnimation.Left)

        })

        

        

        return [shareAction,deleteAction]

    }

    

    //每个cell的高度

    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

        return 80

    }

    //隐藏bar

    override func prefersStatusBarHidden() ->Bool {

        return true

    }

    

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }


}


你可能感兴趣的:(swift,ios)