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 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...