iOS学习- 13 删除Table View中的Cell - Todo App
来源:互联网 发布:mac epub mobi 转换 编辑:程序博客网 时间:2024/04/30 06:57
1.)如何删除 Table View 中的Cel l:
需要实现Protocol - UITableViewDelegate
//
// ViewController.swift
// Todo
//
// Created by Ricky Choi on 16/6/1.
// Copyright © 2016年 worm. All rights reserved.
//
import UIKit
var todos: [TodoModel] = []
func dateFromString(dateStr: String) -> NSDate? {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyy-MM-dd"
let date = dateFormatter.dateFromString(dateStr)
return date
}
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
todos = [TodoModel(id: "1", image: "child-selected", title: "1. 去游乐场", date: dateFromString("2014-11-2")!),
TodoModel(id: "2", image: "shopping-cart-selected", title: "2. ", date: dateFromString("2014-10-28")!),
TodoModel(id: "3", image: "phone-selected", title: "3. 打电话", date: dateFromString("2014-10-30")!),
TodoModel(id: "4", image: "travel-selected", title: "4. Travel to Europe", date: dateFromString("2014-10-31")!),
]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//Implement UITableviewDataSource
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//return 50
return todos.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("todoCell")! as UITableViewCell
var todo = todos[indexPath.row] as TodoModel
//get control from tag
var image = cell.viewWithTag(101) as! UIImageView
var title = cell.viewWithTag(102) as! UILabel
var date = cell.viewWithTag(103) as! UILabel
image.image = UIImage(named: todo.image)
title.text = todo.title
let locale = NSLocale.currentLocale()
let dateFormat = NSDateFormatter.dateFormatFromTemplate("yyyy-MM-dd", options: 0, locale: locale)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = dateFormat
date.text = dateFormatter.stringFromDate(todo.date)
return cell
}
//Implement UITableviewDelegate
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete {
todos.removeAtIndex(indexPath.row)
self.tableView.reloadData()
}
}
}
screen: 从右到拖动Cell,显示删除
但动作没有动画效果,如下增加动画效果:
//Implement UITableviewDelegate
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete {
todos.removeAtIndex(indexPath.row)
//self.tableView.reloadData()
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
}
}
在 Navigation bar 增加一个Edit Mode:
Editor -> Embed in -> Navigation Controller
1.) navigationItem.leftBarButtonItem = editButtonItem()
2.) override func setEditing
//
// ViewController.swift
// Todo
//
// Created by Ricky Choi on 16/6/1.
// Copyright © 2016年 worm. All rights reserved.
//
import UIKit
var todos: [TodoModel] = []
func dateFromString(dateStr: String) -> NSDate? {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyy-MM-dd"
let date = dateFormatter.dateFromString(dateStr)
return date
}
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
todos = [TodoModel(id: "1", image: "child-selected", title: "1. 去游乐场", date: dateFromString("2014-11-2")!),
TodoModel(id: "2", image: "shopping-cart-selected", title: "2. 购物", date: dateFromString("2014-10-28")!),
TodoModel(id: "3", image: "phone-selected", title: "3. 打电话", date: dateFromString("2014-10-30")!),
TodoModel(id: "4", image: "travel-selected", title: "4. Travel to Europe", date: dateFromString("2014-10-31")!),
]
navigationItem.leftBarButtonItem = editButtonItem()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//Implement UITableviewDataSource
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//return 50
return todos.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("todoCell")! as UITableViewCell
var todo = todos[indexPath.row] as TodoModel
//get control from tag
var image = cell.viewWithTag(101) as! UIImageView
var title = cell.viewWithTag(102) as! UILabel
var date = cell.viewWithTag(103) as! UILabel
image.image = UIImage(named: todo.image)
title.text = todo.title
let locale = NSLocale.currentLocale()
let dateFormat = NSDateFormatter.dateFormatFromTemplate("yyyy-MM-dd", options: 0, locale: locale)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = dateFormat
date.text = dateFormatter.stringFromDate(todo.date)
return cell
}
//Implement UITableviewDelegate
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete {
todos.removeAtIndex(indexPath.row)
//self.tableView.reloadData()
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
}
}
//Edit Mode in navigation bar
override func setEditing(editing: Bool, animated: Bool) {
super.setEditing(editing , animated: animated)
self.tableView.setEditing(editing, animated: animated)
}
}
screen:
- iOS学习- 13 删除Table View中的Cell - Todo App
- iOS学习- 14 增加Table View中的iteml - Todo App
- iOS学习- 12 绑定数组数据到Table View - Todo App
- ios中自定义table view cell
- ios学习--table cell定制
- iOS学习- 09 控件 UITableViewController - Todo App
- iOS学习之Table View
- iOS学习- 11 TableView 显示TableViewCell 显示 - Todo App
- iOS学习- 14 adding tableview item logic - Todo App
- iOS学习- 15 Edit tableview item - Todo App
- iOS学习- 15 Move tableview item - Todo App
- iOS学习- 16 search tableview item - Todo App
- self sizing table view cell
- iOS学习之分段Table View
- IOS学习之table view示例
- iOS Programming Tutorial: Create a Simple Table View App
- iOS删除cell
- iOS 滑动删除cell
- 自己写的字符处理函数+字符处理函数
- Android多个activity退出问题处理
- JAV开发笔记系列--1-在MAC上利用Android Studio开发JAVA项目
- 通过两个视图监控快速回复区:V$RECOVERY_FILE_DEST and V$RECOVERY_AREA_USAGE.
- C++实验7-函数复习
- iOS学习- 13 删除Table View中的Cell - Todo App
- 不用临时变量交换两个数的值
- 各种基本排序(直接插入;希尔;选择;堆;冒泡;快排)
- Java读写XML实例
- 类的继承
- TotalCommander.bat
- JS 判断字符串是否为手机号
- 多线程间共享数据,简单Demo
- 通过存储过程更新表结构