zoukankan      html  css  js  c++  java
  • Swift 语言概览 -自己在Xcode6 动手写2-tableView

      1 import UIKit
      2 
      3 class ViewController: UIViewController ,UITableViewDelegate, UITableViewDataSource
      4 {
      5     var tableView : UITableView?
      6     var items :NSMutableArray?
      7     var leftBtn:UIButton?
      8                             
      9     override func viewDidLoad() {
     10         super.viewDidLoad()
     11         self.title = "I love Swift"
     12         self.items = NSMutableArray()
     13        // self.items?.addObject("1","2")
     14         // Do any additional setup after loading the view, typically from a nib.
     15         setupViews()
     16         setupRightBarButtonItem()
     17         setupLeftBarButtonItem();
     18     }
     19     
     20     func setupViews()
     21     {
     22         self.tableView = UITableView(frame:self.view!.frame)
     23         self.tableView!.delegate = self
     24         self.tableView!.dataSource = self
     25         self.tableView!.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
     26         self.view?.addSubview(self.tableView)
     27     }
     28     
     29     func setupLeftBarButtonItem()
     30     {
     31         self.leftBtn = UIButton.buttonWithType(UIButtonType.Custom) as? UIButton
     32         self.leftBtn!.frame = CGRectMake(0,0,50,40)
     33         self.leftBtn?.setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)
     34         self.leftBtn?.setTitle("Edit", forState: UIControlState.Normal)
     35         self.leftBtn!.tag = 100
     36         self.leftBtn!.userInteractionEnabled = false
     37         self.leftBtn?.addTarget(self, action: "leftBarButtonItemClicked", forControlEvents: UIControlEvents.TouchUpInside)
     38         var barButtonItem = UIBarButtonItem(customView: self.leftBtn)
     39         self.navigationItem!.leftBarButtonItem = barButtonItem
     40     }
     41     
     42     func setupRightBarButtonItem()
     43     {
     44         var barButtonItem = UIBarButtonItem(title: "Add", style: UIBarButtonItemStyle.Plain, target: self, action: "rightBarButtonItemClicked")
     45         self.navigationItem!.rightBarButtonItem = barButtonItem
     46     }
     47     
     48     func rightBarButtonItemClicked()
     49     {
     50       
     51         var row = self.items!.count
     52         var indexPath = NSIndexPath(forRow:row,inSection:0)
     53         self.items?.addObject("1")
     54         self.tableView?.insertRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Left)
     55          self.leftBtn!.userInteractionEnabled = true
     56     }
     57     
     58     func leftBarButtonItemClicked()
     59     {
     60         if (self.leftBtn!.tag == 100)
     61         {
     62             self.tableView?.setEditing(true, animated: true)
     63             self.leftBtn!.tag = 200
     64             self.leftBtn?.setTitle("Done", forState: UIControlState.Normal)
     65         }
     66         else
     67         {
     68             self.tableView?.setEditing(false, animated: true)
     69             self.leftBtn!.tag = 100
     70             self.leftBtn?.setTitle("Edit", forState: UIControlState.Normal)
     71         }
     72         
     73     }
     74     
     75     
     76     override func didReceiveMemoryWarning() {
     77         super.didReceiveMemoryWarning()
     78         // Dispose of any resources that can be recreated.
     79     }
     80     
     81     func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int
     82     {
     83         return self.items!.count
     84     }
     85     
     86     func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!
     87     {
     88         let cell = tableView .dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell
     89         cell.textLabel.text = String(format: "%i", indexPath.row+1)
     90         return cell
     91     }
     92     
     93     func tableView(tableView: UITableView!, canEditRowAtIndexPath indexPath: NSIndexPath!) -> Bool
     94     {
     95         return true
     96     }
     97     
     98     func tableView(tableView: UITableView!, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath!)
     99     {
    100         self.items?.removeObjectAtIndex(indexPath.row)
    101     
    102         self.tableView?.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
    103         if (self.items!.count == 0)
    104         {
    105              self.leftBtn!.userInteractionEnabled = false
    106         }
    107        
    108     }
    109     
    110      func tableView(tableView: UITableView!, editingStyleForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCellEditingStyle
    111     {
    112         return (UITableViewCellEditingStyle.Delete)
    113     }
    114     
    115     func tableView(tableView: UITableView!, canMoveRowAtIndexPath indexPath: NSIndexPath!) -> Bool
    116     {
    117          return true
    118     }
    119     
    120     func tableView(tableView: UITableView!, moveRowAtIndexPath sourceIndexPath: NSIndexPath!, toIndexPath destinationIndexPath: NSIndexPath!)
    121     {
    122         self.tableView?.moveRowAtIndexPath(sourceIndexPath, toIndexPath: destinationIndexPath)
    123         self.items?.exchangeObjectAtIndex(sourceIndexPath.row, withObjectAtIndex: destinationIndexPath.row)
    124     }
    125     
    126     func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!)
    127     {
    128         println("row = %d",indexPath.row)
    129     }
    130     
    131     
    132     
    133     
    134     
    135     
    136 
    137 }

    分享一个官网文档的链接,有兴趣的童鞋可以去看看,有关OC 和 Swift 的兼容问题 

    https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_75

  • 相关阅读:
    EasyDSS功能简介视频直播、直播鉴权(如何完美将EasyDSS过渡到新版)
    EasyNVR前端构建之输入框样式的调整
    NVR硬件录像机web无插件播放方案(支持取特定时间段视频流)
    Windows操作系统远程Linux服务器传输文件方法(以EasyDSS云平台、EasyNVR上传部署为例)
    零基础实现摄像头的全平台直播 (二)公网直播的实现
    海康、大华NVR硬件录像机录像无插件全平台访问实现播放时间轴实现
    直播与虚拟直播
    CF585EPresent for Vitalik the Philatelist【莫比乌斯反演,狄利克雷前缀和】
    AT4519[AGC032D]Rotation Sort【dp】
    P5110块速递推【特征方程,分块】
  • 原文地址:https://www.cnblogs.com/yaoji/p/3767902.html
Copyright © 2011-2022 走看看