我想在表格页脚中添加一个按钮。我已经编写了这段代码,但按钮不起作用。
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
}
谢谢!
编辑我的类(class)tableView
导入 UIKit
导入 GoogleMobileAds
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
}
函数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")
}
}
最佳答案
我已经测试了你的代码,它工作正常,但如果它不适合你,那么还有另一种方法可以转到 Storyboard中的 ViewController,然后添加一个新的 View 来打击你的单元格,如下所示:
之后,您可以使用此代码连接该按钮的操作:
@IBAction func btn(sender: AnyObject) {
println("Working")
}
检查 THIS示例代码。 这会很好用。
HERE是包含您的代码的示例项目。
关于xcode - 快速在页脚表格 View 中添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31217656/