前端之家收集整理的这篇文章主要介绍了
swift-tableView 代理方法实现点击按钮删除效果,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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)
}
}