- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.sw = [[[UISwitch alloc] initWithFrame:CGRectMake(210, 8, 50, 30)] autorelease];
[sw setOn:YES];
[sw addTarget:self action:@selector(switchChanged) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:sw];
}
return self;
}
-(void)switchChanged
{
// [self setImage];
[sw setOn:NO];
if (_delegate && [_delegate respondsToSelector:@selector(selectedWith:)]){
[_delegate selectedWith:self];
}
}
lorsque je clique sur le commutateur, mais la fonction switchChanged ne pas être appelée?pourquoi je clique sur le UISwitch, ça ne marche pas?
Non pertinent par rapport à votre question, mais vous ne devez pas modifier la propriété 'isOn' de' UISwitch' dans 'switchChanged'. Il va le gérer automatiquement. – Desdenova
UIControlEventTouchUpInside changer cela comme réponses ci-dessous.Basiquement fonctionne dans le bouton UI. – Subrat