美文网首页
swift中tableViewCell的操作

swift中tableViewCell的操作

作者: WXGD | 来源:发表于2016-08-16 15:48 被阅读232次

    在iOS的开发过程中,tableView的使用永远都是最常用的控件。今天学习了一下tableViewCell的操作。代码并不是很复杂,如果有OC开发经验的人,应该很容易看懂的。

    
    classViewController:UIViewController,UITableViewDelegate,UITableViewDataSource
    
    {
    
    //    因为Swift中要求变量或常量在声明时就要初始化其值,所以我们在实际开发中,声明变量或常量时使用可选类型。后面代码中使用到以上变量时需要加 ! 对其解包。
    
    vartableView:UITableView?
    
    //    var items :NSMutableArray?
    
    // 例如可以不用可选,
    
    varitems:NSMutableArray= []
    
    varleftBtn:UIButton?
    
    overridefuncviewDidLoad() {
    
    super.viewDidLoad()
    
    self.items=NSMutableArray()
    
    // 初始化tableView
    
    setupViews()
    
    // 右边添加按钮
    
    setupRightBarButtonItem()
    
    // 左边删除按钮
    
    setupLeftBarButtonItem();
    
    }
    
    funcsetupViews()
    
    {
    
    self.tableView=UITableView(frame:self.view!.frame)
    
    self.tableView!.delegate=self
    
    self.tableView!.dataSource=self
    
    self.tableView!.registerClass(UITableViewCell.self,forCellReuseIdentifier:"cell")
    
    self.view.addSubview(self.tableView!)
    
    }
    
    funcsetupLeftBarButtonItem()
    
    {
    
    self.leftBtn=UIButton(type:UIButtonType.Custom)
    
    self.leftBtn!.frame=CGRectMake(0,0,50,40)
    
    self.leftBtn!.setTitleColor(UIColor.redColor(),forState:UIControlState.Normal)
    
    self.leftBtn!.setTitle("Edit",forState:UIControlState.Normal)
    
    self.leftBtn!.tag=100
    
    self.leftBtn!.userInteractionEnabled=false
    
    self.leftBtn!.addTarget(self,action:"leftBarButtonItemClicked",forControlEvents:UIControlEvents.TouchUpInside)
    
    letbarButtonItem=UIBarButtonItem(customView:self.leftBtn!)
    
    self.navigationItem.leftBarButtonItem=barButtonItem
    
    }
    
    funcsetupRightBarButtonItem()
    
    {
    
    letbarButtonItem=UIBarButtonItem(title:"Add",style:UIBarButtonItemStyle.Plain,target:self,action:"rightBarButtonItemClicked")
    
    self.navigationItem.rightBarButtonItem=barButtonItem
    
    }
    
    funcrightBarButtonItemClicked()
    
    {
    
    letrow=self.items.count
    
    letindexPath=NSIndexPath(forRow:row,inSection:0)
    
    self.items.addObject("1")
    
    self.tableView?.insertRowsAtIndexPaths([indexPath],withRowAnimation:UITableViewRowAnimation.Left)
    
    self.leftBtn!.userInteractionEnabled=true
    
    }
    
    funcleftBarButtonItemClicked()
    
    {
    
    if(self.leftBtn!.tag==100)
    
    {
    
    // 设置当前tableView可编辑
    
    self.tableView?.setEditing(true,animated:true)
    
    self.leftBtn!.tag=200
    
    self.leftBtn?.setTitle("Done",forState:UIControlState.Normal)
    
    }
    
    else
    
    {
    
    self.tableView?.setEditing(false,animated:true)
    
    self.leftBtn!.tag=100
    
    self.leftBtn?.setTitle("Edit",forState:UIControlState.Normal)
    
    }
    
    }
    
    overridefuncdidReceiveMemoryWarning() {
    
    super.didReceiveMemoryWarning()
    
    // Dispose of any resources that can be recreated.
    
    }
    
    functableView(tableView:UITableView,numberOfRowsInSectionsection:Int) ->Int
    
    {
    
    returnself.items.count
    
    }
    
    functableView(tableView:UITableView,cellForRowAtIndexPathindexPath:NSIndexPath) ->UITableViewCell
    
    {
    
    letcell=tableView.dequeueReusableCellWithIdentifier("cell",forIndexPath:indexPath)asUITableViewCell
    
    cell.textLabel!.text=String(format:"%i",indexPath.row+1)
    
    returncell
    
    }
    
    // 指定可编辑的行
    
    functableView(tableView:UITableView,setEditingindexPath:NSIndexPath) ->Bool
    
    {
    
    returntrue
    
    }
    
    // 编辑完成
    
    functableView(tableView:UITableView,commitEditingStyleeditingStyle:UITableViewCellEditingStyle,forRowAtIndexPathindexPath:NSIndexPath)
    
    {
    
    self.items.removeObjectAtIndex(indexPath.row)
    
    self.tableView?.deleteRowsAtIndexPaths([indexPath],withRowAnimation:UITableViewRowAnimation.Top)
    
    if(self.items.count==0)
    
    {
    
    self.leftBtn!.userInteractionEnabled=false
    
    }
    
    }
    
    // 编辑样式
    
    functableView(tableView:UITableView,editingStyleForRowAtIndexPathindexPath:NSIndexPath) ->UITableViewCellEditingStyle
    
    {
    
    return(UITableViewCellEditingStyle.Delete)
    
    }
    
    // 指定哪些行可以移动
    
    functableView(tableView:UITableView,canMoveRowAtIndexPathindexPath:NSIndexPath) ->Bool
    
    {
    
    returntrue
    
    }
    
    // 移动完成
    
    functableView(tableView:UITableView,moveRowAtIndexPathsourceIndexPath:NSIndexPath,toIndexPathdestinationIndexPath:NSIndexPath)
    
    {
    
    self.tableView?.moveRowAtIndexPath(sourceIndexPath,toIndexPath:destinationIndexPath)
    
    self.items.exchangeObjectAtIndex(sourceIndexPath.row,withObjectAtIndex:destinationIndexPath.row)
    
    }
    
    // 限制在同一分区移动
    
    functableView(tableView:UITableView,targetIndexPathForMoveFromRowAtIndexPathsourceIndexPath:NSIndexPath,toProposedIndexPathproposedDestinationIndexPath:NSIndexPath) ->NSIndexPath{
    
    ifsourceIndexPath.section==proposedDestinationIndexPath.section{
    
    returnproposedDestinationIndexPath
    
    }
    
    returnsourceIndexPath
    
    }
    
    // 点击cell
    
    functableView(tableView:UITableView,didSelectRowAtIndexPathindexPath:NSIndexPath)
    
    {
    
    print("row = %d",indexPath.row)
    
    }
    
    }
    
    

    相关文章

      网友评论

          本文标题:swift中tableViewCell的操作

          本文链接:https://www.haomeiwen.com/subject/ruppsttx.html