1
- (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];
    }
}

スイッチをクリックすると、関数 switchChanged が呼び出されませんか?

4

2 に答える 2

1

代わりforControlEventsに変更UIControlEventValueChangedUIControlEventTouchUpInside

これを試して、

 [sw addTarget:self action:@selector(switchChanged) forControlEvents:UIControlEventValueChanged];
于 2013-08-07T06:54:21.227 に答える
0

UISwitchの値を変更するアクションが必要な場合、指定したイベントは UIControlEventValueChangedである必要があるためです。

[sw addTarget:self action:@selector(switchChanged) forControlEvents: UIControlEventValueChanged];
于 2013-08-07T07:13:39.250 に答える