前端之家收集整理的这篇文章主要介绍了
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)
- }
- }
-
-
-