gpt4 book ai didi

ios - 自定义单元格错误添加目标按钮

转载 作者:行者123 更新时间:2023-11-28 11:22:16 24 4
gpt4 key购买 nike

我创建了一个布局,如下所示:在 Storyboard中,我有一个包含表格 View 的 View ,并且关联了类 TableViewController。然后,我创建了一个带有自定义单元格的新 View ,并为其分配了类 CustomCell

当我尝试为按钮分配操作时遇到问题。由于各种原因,我需要在 TableViewController 中分配操作。

这是我的代码:

这是 CustomCell:

class CustomCategoryTableViewCell:UITableViewCell {

@IBOutlet weak var customButton: UIButton!
@IBOutlet weak var title: UILabel!

override func awakeFromNib() {
super.awakeFromNib()

}

override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
println("Cell is selected.")

}
}

这是我的 TableViewController:

 override func viewDidLoad() {
super.viewDidLoad()

// Register custom cell
var nib = UINib(nibName: "CategoryCell", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "CustomCellCategory")

…more code
}


override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
println("numero rihe \(myArray.count)")
return myArray.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cellCustom:CustomCategoryTableViewCell = tableView.dequeueReusableCellWithIdentifier("CustomCellCategory") as CustomCategoryTableViewCell

// Button
cellCustom.customButton.tag = indexPath.row

println("current level: \(myArray[indexPath.row].level)")

if (myArray[indexPath.row].level > 0){
var puppy=""

for (var i = 0; i < myArray[indexPath.row].level; i++){
puppy += " "
}
cellCustom.title.text = "\(puppy)-\(myArray[indexPath.row].nameCategory)"
}else{
cellCustom.title.text = myArray[indexPath.row].nameCategory
}

// Setto button aperto/chiuso
if (myArray[indexPath.row].isOpen){

var image = UIImage(named: "item-icon-folder.png");
cellCustom.customButton.setBackgroundImage(image, forState: UIControlState.Normal)

}else{

var image = UIImage(named: "item-icon-folder-selected.png");
cellCustom.customButton.setBackgroundImage(image, forState: UIControlState.Normal)
}

//cellCustom.customButton(cellCustom, action:"searchChild", forControlEvents: UIControlEvents.TouchUpInside)


// Nascondo Button.
if (!myArray[cellCustom.customButton.tag].hasChild){
print("Non ha figli")
cellCustom.customButton.hidden = true

var image = UIImage(named: "item-counter.png");
cellCustom.customButton.setBackgroundImage(image, forState: UIControlState.Normal)
}
cellCustom.customButton.addTarget(cellCustom, action: "buttonAction", forControlEvents: UIControlEvents.TouchUpInside)

cellCustom.title.numberOfLines = 3
cellCustom.title.lineBreakMode = .ByWordWrapping

return cellCustom
}


func buttonAction(sender:UIButton!) {
println(“tapped”)
}

当我运行它时,得到一个错误:

*** First throw call stack:
(
0 CoreFoundation 0x000000010c574f35 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010e0b8bb7 objc_exception_throw + 45
2 CoreFoundation 0x000000010c57c04d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x000000010c4d427c ___forwarding___ + 988
4 CoreFoundation 0x000000010c4d3e18 _CF_forwarding_prep_0 + 120
5 UIKit 0x000000010ce018be -[UIApplication sendAction:to:from:forEvent:] + 75
6 UIKit 0x000000010cf08410 -[UIControl _sendActionsForEvents:withEvent:] + 467
7 UIKit 0x000000010cf077df -[UIControl touchesEnded:withEvent:] + 522
8 UIKit 0x000000010d1ae540 _UIGestureRecognizerUpdate + 9487
9 UIKit 0x000000010ce46ff6 -[UIWindow _sendGesturesForEvent:] + 1041
10 UIKit 0x000000010ce47c23 -[UIWindow sendEvent:] + 667
11 UIKit 0x000000010ce149b1 -[UIApplication sendEvent:] + 246
12 UIKit 0x000000010ce21a7d _UIApplicationHandleEventFromQueueEvent + 17370
13 UIKit 0x000000010cdfd103 _UIApplicationHandleEventQueue + 1961
14 CoreFoundation 0x000000010c4aa551 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
15 CoreFoundation 0x000000010c4a041d __CFRunLoopDoSources0 + 269
16 CoreFoundation 0x000000010c49fa54 __CFRunLoopRun + 868
17 CoreFoundation 0x000000010c49f486 CFRunLoopRunSpecific + 470
18 GraphicsServices 0x000000011066b9f0 GSEventRunModal + 161
19 UIKit 0x000000010ce00420 UIApplicationMain + 1282
20 XMLParser-Tutorial 0x000000010c24056e top_level_code + 78
21 XMLParser-Tutorial 0x000000010c2405aa main + 42
22 libdyld.dylib 0x000000010e892145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

最佳答案

这不起作用的原因是因为您将委托(delegate)设置为“cellCustom”而不是 View Controller 。替换这一行:

cellCustom.customButton.addTarget(cellCustom, action: "buttonAction", forControlEvents: UIControlEvents.TouchUpInside)

有了这个:

cellCustom.customButton.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)

关于ios - 自定义单元格错误添加目标按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26736151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com