所以我创建了一个自定义的TableViewCell,并在笔尖上放了一个UISwitch
。在我甚至将它连接到任何东西之前,如果我在模拟器中运行它并单击它,它将通过动画等从关闭切换到开启。单击UISwitch时关闭自动切换?
我正试图添加一个功能,只允许用户在某个条件为真时从关闭变为开启。我希望如此,当用户触摸开关时,它会检查条件是否为真,如果不是,开关不会移动。
我已经设置了IBAction
,如果用户触摸内部,它会运行我的功能。我的功能是这样的:
if([on_switch isOn])
{
if([my_switch canSwitchOn])
{
NSLog(@"SWITCHED ON SUCCESSFULLY");
[on_switch setOn:TRUE animated:TRUE];
}
else
{
NSLog(@"SWITCHED ON UNSUCCESSFULLY");
//Put in popup here
}
}
else
{
[[ClassesSingleton sharedSingleton] classSwitchedOff:cell_index];
[on_switch setOn:FALSE animated:TRUE];
}
但是,无论我做什么,该交换机将翻转,即使我给它没有指示进行操作。我很确定这是自动翻转,即使在我把任何东西吸引到它之前,它也会这样做。有没有办法关掉它?
谢谢!
我试过了。问题是,它在一个TableViewCell上。当我关闭userInteractionEnabled并尝试点击开关时,它会触及它后面的单元格。细胞进入另一种观点。我需要它仍然算作一个对象,以便单元格不会被触及,但不会自动切换。 – Ethan 2009-11-06 21:55:21
通过将常规UIView粘贴到具有userInteraction Enabled的按钮(具有完全相同的大小)下方,您可以使生活变得简单。然后,当您在按钮上关闭它时,触摸将通过开关下落,但被常规视图占用,并且永远不会触击TableView Cell – 2009-11-06 22:06:51
另一种选择是将开关设置为NO。它会使开关变灰,所以你可以实际上告诉它在点击它之前不会做任何事情,并且它不会将水龙头传递到它后面的单元格。 – 2009-11-06 23:17:08