我有2个自定义单元格,我需要为其设置选择属性。现在,我已经使用布尔值告诉程序该单元格是类型1还是类型2,因为我只是检查代码是否正常工作。
现在我需要程序来找出它本身是哪种类型的单元格,而且我不知道它是如何完成的。
我的代码如下所示:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if istrue{
let mySelectedCell: CustomTableCell = tv.cellForRowAtIndexPath(indexPath)! as CustomTableCell
if (mySelectedCell.accessoryType == UITableViewCellAccessoryType.Checkmark) {
mySelectedCell.accessoryType = UITableViewCellAccessoryType.None
if let tx = mySelectedCell.customLabel.text as String!{
var textLabel:String = String()
textLabel = tx
println(textLabel)
if let ind = find(tempList, textLabel) {
tempList.removeAtIndex(ind)
println(tempList)
}
}
}
else {
mySelectedCell.accessoryType = UITableViewCellAccessoryType.Checkmark
mySelectedCell.tintColor = UIColor.blackColor()
if let tx = mySelectedCell.customLabel.text as String!{
var textLabel:String = String()
textLabel = tx
tempList.append(textLabel)
println(tempList)
}
}
}else{
let mySelectedCell: CustomTableCell2 = tv.cellForRowAtIndexPath(indexPath)! as CustomTableCell2
if (mySelectedCell.accessoryType == UITableViewCellAccessoryType.Checkmark) {
mySelectedCell.accessoryType = UITableViewCellAccessoryType.None
if let tx = mySelectedCell.titleLabel.text as String!{
var textLabel:String = String()
textLabel = tx
println(textLabel)
if let ind = find(tempList, textLabel) {
tempList.removeAtIndex(ind)
println(tempList)
}
}
}
else {
mySelectedCell.accessoryType = UITableViewCellAccessoryType.Checkmark
mySelectedCell.tintColor = UIColor.blackColor()
if let tx = mySelectedCell.titleLabel.text as String!{
var textLabel:String = String()
textLabel = tx
tempList.append(textLabel)
println(tempList)
}
}
}
}
我不知道这是否也是最好的方法,所以如果你有更好的方法来设置这个,请给我一些提示" checkmark"选择样式。
有关如何实现这一目标的所有建议将不胜感激。
答案 0 :(得分:0)
这是一个客观的例子:
id cell = [tableView cellForRowAtIndexPath:indexPath];
if ([cell isKindOfClass:[PhotoCell2x class]]) {
NSLog(@"1");
}
else if([cell isKindOfClass:[EffectCell2x class]]){
NSLog(@"2");
}
如果我有时间,我会添加一个快速版本。希望这有助于.. :))
答案 1 :(得分:0)
对于需要它的人来说, Swift 4 会更新。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath)
if (cell?.isMember(of: CLASSNAME.self))!{
print("hello")
} else {
}
}