2010-05-14 58 views
1

我有一個在viewView中的UISwitch TableViewCell。如果有人選擇了它,我不想要那個藍色背景。有,否則我使用UITableViewCell沒有userInteraction但cell.accessoryView

cell.userInteractionEnabled = NO; 

但隨後的心不是accessable整個小區,所以我嘗試了

cell.userInteractionEnabled = NO; 
cell.accessoryView.userInteractionEnabled = YES; 

我認爲這不會工作,因爲電池是accessoryView的母公司。但我怎樣才能管理這個問題?向正確的方向提示會很好。

西蒙

下面是完整的cellForRowAtIndexPath方法:

cell.textLabel.text = @"dasda"; 
cell.userInteractionEnabled = NO; 
cell.accessoryType = UITableViewCellAccessoryNone; 

UISwitch *mySwitch = [[[UISwitch alloc] initWithFrame:CGRectZero] autorelease]; 
mySwitch.tag = row; 
[cell addSubview:mySwitch]; 
cell.accessoryView = mySwitch; 
cell.accessoryView.userInteractionEnabled = YES; 

[(UISwitch *)cell.accessoryView setOn: YES]; 
[(UISwitch *)cell.accessoryView addTarget:self action:@selector(someAction:) forControlEvents:UIControlEventValueChanged]; 

return cell; 
+1

+1爲「天才和書呆子」!他們往往彼此接近。 :) – bddckr 2010-05-14 01:19:25

+0

作爲回答這個問題的人,我想知道我是天才還是書呆子? – 2010-05-15 08:45:38

回答

4

在你的cellForRowAtIndexPath方法試試這個:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

您還可以在您的didSelectRowAtIndexPath方法方法使用此的選項:

[table deselectRowAtIndexPath:indexPath animated:NO]; 
+0

非常感謝ive尋找什麼:-) – 2010-05-14 01:02:49

+0

沒有probs,不客氣! – 2010-05-14 01:05:42

+0

+1 for selectionStyle。更合適的方法 – 2012-08-01 10:42:21

相關問題