swift中UITableView的使用(左滑多按钮)

前端之家收集整理的这篇文章主要介绍了swift中UITableView的使用(左滑多按钮)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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这个方法,极大的方便于了开发者自定义多按钮响应。

猜你在找的Swift相关文章