add button in footer tableview in swift
I have tested your code and it is working fine but if it is not working for you then there is one more way to do it go to your ViewController in storyBoard then add a new view blow your cell as shown below:
After that you can connect an action of that button with this code:
@IBAction func btn(sender: AnyObject) {
println("Working")
}
Check THIS sample code. This will work fine.
HERE is Sample project with your code.
Zahed Ri
Updated on June 04, 2022Comments
-
Zahed Ri almost 2 years
I want to add a button in a table footer. I have written this code but the button does not work.
func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { var footerView : UIView? footerView = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, 50)) footerView?.backgroundColor = UIColor.blackColor() let dunamicButton = UIButton.buttonWithType(UIButtonType.System) as! UIButton dunamicButton.backgroundColor = UIColor.greenColor() dunamicButton.setTitle("Button", forState: UIControlState.Normal) dunamicButton.frame = CGRectMake(0, 0, 100, 50) dunamicButton.addTarget(self, action: "buttonTouched:", forControlEvents: UIControlEvents.TouchUpInside) footerView?.addSubview(dunamicButton) return footerView } func buttonTouched(sender:UIButton!){ println("diklik") } func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { return 50.0 }
Thanks!
edit my class tableView
import UIKit
import GoogleMobileAds
class MenuViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, SetingTableViewControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var tabelView: UITableView! var data = ["BINATANG","BUAH","MAKANAN","SAYURAN","TUBUH","RUMAH","SEKOLAH","WARNA","ALAM","KENDARAAN","MAINAN"] override func viewDidLoad() { super.viewDidLoad() self.tabelView.rowHeight = 100.0 }
func SetingTableViewControllerDidCancel(controller : SetingTableViewController)
{ dismissViewControllerAnimated(true, completion: nil) } func SetingTableViewControllerDidDone(controller : SetingTableViewController){ dismissViewControllerAnimated(true, completion: nil) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return data.count } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = self.tabelView.dequeueReusableCellWithIdentifier("cell") as! KategoriCell cell.imgCell.image = UIImage(named: data1[indexPath.row]+"2") cell.labelCell.text = data[indexPath.row] return cell } override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "playId"{ let indexPath = tabelView.indexPathForSelectedRow() let item = data[indexPath!.row] let detailViewController = segue.destinationViewController as! PlayViewController detailViewController.kategoriKe = indexPath!.row } else if segue.identifier == "settingId"{ let navigationController = segue.destinationViewController as! UINavigationController let controller = navigationController.topViewController as! SetingTableViewController controller.delegate = self } } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { var selectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)! } func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) { NSUserDefaults.standardUserDefaults().setInteger(indexPath.row, forKey: "kategoriIdx")
}
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { var height : CGFloat height = 50 return height } func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { var footerView : UIView? footerView = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, 50)) footerView?.backgroundColor = UIColor.blackColor() let dunamicButton = UIButton.buttonWithType(UIButtonType.System) as! UIButton dunamicButton.backgroundColor = UIColor.greenColor() dunamicButton.setTitle("Button", forState: UIControlState.Normal) dunamicButton.frame = CGRectMake(0, 0, 100, 50) dunamicButton.addTarget(self, action: "buttonTouched:", forControlEvents: UIControlEvents.TouchUpInside) footerView?.addSubview(dunamicButton) return footerView } func buttonTouched(sender:UIButton!){ println("diklik") } func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { return 50.0 } func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) { if viewController === self { NSUserDefaults.standardUserDefaults().setInteger( -1, forKey: "kategoriIdx") } }
}