import UIKit
protocol FirstTableViewCellDelegate: NSObjectProtocol {
func deleteCell(cell: FirstTableViewCell, button: UIButton)
}
class FirstTableViewCell: UITableViewCell {
@IBOutlet weak var myLabel: UILabel!
@IBOutlet weak var myButton: UIButton!
weak var delegate:FirstTableViewCellDelegate?
override func awakeFromNib() {
super.awakeFromNib()
prepareUI()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func prepareUI() {
myButton.setTitle("删除", forState: UIControlState.Normal)
myButton.backgroundColor = UIColor.redColor()
myButton.layer.cornerRadius = 15
myButton.layer.masksToBounds = true
myButton.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
myButton.addTarget(self, action: "BtnClick:", forControlEvents: UIControlEvents.TouchUpInside)
}
@objc private func BtnClick(button:UIButton){
delegate?.deleteCell(self, button: button)
}
}
import UIKit
class FirstViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
let cellIdentified = "cell"
var numbers = ["One","Two","Three","Foure","Five","Six","Seven","Eight","Nine","Ten"];
override func viewDidLoad() {
super.viewDidLoad()
// 准备UI
prepareUI()
// Do any additional setup after loading the view.
}
private func prepareUI() {
navigationItem.title = "首页"
tableView.delegate = self
tableView.dataSource = self
// tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: cellIdentified)
tableView.registerNib(UINib(nibName: "FirstTableViewCell", bundle: nil), forCellReuseIdentifier: cellIdentified)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete {
numbers.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
}
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}
extension FirstViewController:UITableViewDelegate, UITableViewDataSource, FirstTableViewCellDelegate {
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentified, forIndexPath: indexPath)
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentified, forIndexPath: indexPath) as! FirstTableViewCell
// cell.textLabel?.text = numbers[indexPath.row]
cell.myLabel.text = numbers[indexPath.row]
cell.delegate = self
cell.selectionStyle = UITableViewCellSelectionStyle.None
return cell
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return numbers.count
}
func deleteCell(cell: FirstTableViewCell, button: UIButton) {
let idx:NSIndexPath = tableView.indexPathForCell(cell)!
numbers.removeAtIndex(idx.row)
tableView.deleteRowsAtIndexPaths([idx], withRowAnimation: UITableViewRowAnimation.Top)
}
}