github学习地址:https://github.com/potato512/SYSwiftLearning
效果图
源码
// MARK: - 数据 func setLocalData() { self.mainArray = NSMutableArray() for number in 1...10 { let numberTmp = random() % 1000 + number self.mainArray.addObject(String(numberTmp)) } }
// MARK: - 视图 func setUI() { self.mainTableView = UITableView(frame: self.view.bounds,style: .Plain) self.view.addSubview(self.mainTableView) self.mainTableView.backgroundColor = UIColor.clearColor() self.mainTableView.delegate = self self.mainTableView.dataSource = self self.mainTableView.autoresizingMask = UIViewAutoresizing.FlexibleHeight self.mainTableView.tableFooterView = UIView() }
// MARK: - UITableViewDataSource,UITableViewDelegate func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } func tableView(tableView: UITableView,numberOfRowsInSection section: Int) -> Int { return self.mainArray.count } func tableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cell:UITableViewCell! = tableView.dequeueReusableCellWithIdentifier("UITableViewCell") if cell == nil { cell = UITableViewCell(style: .Default,reuseIdentifier: "UITableViewCell") } let text = self.mainArray[indexPath.row] as! String cell.textLabel!.text = text return cell } func tableView(tableView: UITableView,didSelectRowAtIndexPath indexPath: NSIndexPath) { tableView.deselectRowAtIndexPath(indexPath,animated: true) }
// 更多按钮设置 func tableView(tableView: UITableView,editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? { let top = UITableViewRowAction(style: .Normal,title: "置顶") { action,index in print("more button tapped") self.alertShow("置顶") } top.backgroundColor = UIColor.lightGrayColor() let readed = UITableViewRowAction(style: .Normal,title: "标为已读") { action,index in print("favorite button tapped") self.alertShow("标为已读") } readed.backgroundColor = UIColor.orangeColor() let delete = UITableViewRowAction(style: .Normal,title: "删除") { action,index in print("share button tapped") self.alertShow("删除") } delete.backgroundColor = UIColor.blueColor() return [top,readed,delete] }
// MARK: - alert func alertShow(title:String) { let alertView = UIAlertView(title: nil,message: title,delegate: nil,cancelButtonTitle: "知道了"); alertView.show() }
说明:在iOS8.0之后,Apple开放了editActionsForRowAtIndexPath
这个方法,极大的方便于了开发者自定义多按钮响应。