swift tableviewcontroller自訂欄表

來源:互聯網
上載者:User

標籤:

  1 //  2 //  JieTableViewController.swift  3 //  JieTableView  4 //  5 //  Created by jiezhang on 14-10-5.  6 //  Copyright (c) 2014年 jiezhang. All rights reserved.  7 //  8   9 import UIKit 10  11 class JieTableViewController: UITableViewController { 12  13     var listVideos : NSMutableArray! 14      15     override func viewDidLoad() { 16         super.viewDidLoad() 17         var bundle = NSBundle.mainBundle() 18         let plistPath : String! = bundle.pathForResource("videos", ofType: "plist") 19         listVideos = NSMutableArray(contentsOfFile: plistPath) 20         // Uncomment the following line to preserve selection between presentations 21         // self.clearsSelectionOnViewWillAppear = false 22          23         // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 24         //下面這段話是設定左邊編輯,右邊添加item 25          26         self.navigationItem.leftBarButtonItem = self.editButtonItem() 27         let addButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Add, target: self, action: "insertNewObject:") 28         self.navigationItem.rightBarButtonItem = addButton 29          30     } 31  32     func insertNewObject(sender: AnyObject) { 33         var item : NSDictionary = NSDictionary(objects:["http://c.hiphotos.baidu.com/video/pic/item/f703738da977391224eade15fb198618377ae2f2.jpg","新增資料", NSDate.date().description] , forKeys: ["video_img","video_title","video_subTitle"]) 34         listVideos.insertObject(item, atIndex: 0) 35         let indexPath = NSIndexPath(forRow: 0, inSection: 0) 36         self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic) 37     } 38      39  40     override func didReceiveMemoryWarning() { 41         super.didReceiveMemoryWarning() 42         // Dispose of any resources that can be recreated. 43     } 44  45     // MARK: - Table view data source 46     //返回節的個數 47     override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 48         // #warning Potentially incomplete method implementation. 49         // Return the number of sections. 50         return 1 51     } 52     //返回某個節中的行數 53     override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 54         // #warning Incomplete method implementation. 55         // Return the number of rows in the section. 56         return listVideos.count 57     } 58     //為表視圖儲存格提供資料,該方法是必須實現的方法 59     override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 60         let cellIdentifier : String = "videoItem" 61         let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as JieTableViewCell 62         var row = indexPath.row 63         var rowDict : NSDictionary = listVideos.objectAtIndex(row) as NSDictionary 64         let url : String = rowDict.objectForKey("video_img") as String 65         let dataImg : NSData = NSData(contentsOfURL: NSURL(string : url)) 66         cell.JieVideoImg.image = UIImage(data: dataImg) 67         cell.JieVideoTitle.text = rowDict.objectForKey("video_title") as? String 68         cell.JieVideoSubTitle.text = rowDict.objectForKey("video_subTitle") as? String 69         return cell 70  71     } 72      73     override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 74  75     } 76      77     // 支援儲存格編輯功能 78     override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool { 79         // Return NO if you do not want the specified item to be editable. 80         return true 81     } 82      83     // Override to support editing the table view. 84     override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 85         if editingStyle == .Delete { 86             // Delete the row from the data source 87             listVideos.removeObjectAtIndex(indexPath.row) 88             tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade) 89         } else if editingStyle == .Insert { 90             // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view 91         }     92     } 93  94      95     // Override to support rearranging the table view. 96     override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) { 97         if fromIndexPath != toIndexPath{ 98             var object: AnyObject = listVideos.objectAtIndex(fromIndexPath.row) 99             listVideos.removeObjectAtIndex(fromIndexPath.row)100             if toIndexPath.row > self.listVideos.count{101                 self.listVideos.addObject(object)102             }else{103                 self.listVideos.insertObject(object, atIndex: toIndexPath.row)104             }105         }106     }107     108 109     110     // Override to support conditional rearranging of the table view.111     //在編輯狀態,可以拖動設定item位置112     override func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {113         // Return NO if you do not want the item to be re-orderable.114         return true115     }116     117 118     119     // MARK: - Navigation120 121     //給新進入的介面進行傳值122     override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {123         if segue.identifier == "showDetail" {124             if let indexPath = self.tableView.indexPathForSelectedRow() {125                 let object : NSDictionary = listVideos[indexPath.row] as NSDictionary126                 (segue.destinationViewController as JieDetailViewController).detailItem = object127             }128         }129     }130 131     132     133 134 }

 

swift tableviewcontroller自訂欄表

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.