2015-06-19 3 views
0

Я пытаюсь изменить цвет фона случайным образом в качестве эффекта сверхурочного времени, нажав любую из кнопок на экране. Я хотел бы управлять этим эффектом с помощью UIButton On/Off. Нажатие кнопки ChangeColorButton просто записывает «Off», а не «On». Не знаете, что делать? всем спасибо!!iOS: изменение цвета фона с помощью нескольких кнопок

отредактированный код до сих пор !! в .h

@property(nonatomic,readwrite) BOOL shouldChangeColor; 

in .m 
- (IBAction)ChangeColorButton:(UIButton*)sender { 

    // self.shouldChangeColor = !sender.selected; 
    sender.selected = !sender.selected; 
    if(sender.selected) 
    { 
     NSLog(@"Switch is ON"); 
     //Make it off now 
     // sender.selected=NO; 
    // self.shouldChangeColor=TRUE; 



    } 
    else 

     NSLog(@"Switch is OFF"); 
    //Make it on now 
    // sender.selected=YES; 
    self.shouldChangeColor=TRUE; 

     } 

- (void)randomColor{ 
    int r = arc4random() % 255; 
    int g = arc4random() % 255; 
    int b = arc4random() % 255; 

    UIColor *color = [UIColor colorWithRed:(r/255.0) green:(g/255.0) blue:(b/255.0) alpha:1.0]; 

    [self.view setBackgroundColor:color]; 

} 

ответ

1

Потому что вы не изменяете выбор кнопки

- (IBAction)ChangeColorButton:(UIButton*)sender { 
    //self.shouldChangeColor = sender.selected; 
    sender.selected = !sender.selected; //If you do this 
    if(sender.selected) 
    { 
     self.shouldChangeColor=YES; 
     NSLog(@"Switch is ON"); 
     //Make it off now 
     //sender.selected=NO; You Don't have to do this 
     [self randomColor];//If you want to change the color when switch is on 

    } 
    else{ 
     self.shouldChangeColor=NO; 
     NSLog(@"Switch is OFF"); 
     //Make it on now 
     //sender.selected=YES; You Don't have to do this 
     [self.view setBackgroundColor:[UIColor blackcolor]];//Check the syntax 
    } 
} 

Теперь из любой точки Вызывайте эту функцию, чтобы изменить цвет [self randomColor];

- (void)randomColor{ 
if(self.shouldChangeColor){ 


int r = arc4random() % 255; 
int g = arc4random() % 255; 
int b = arc4random() % 255; 

UIColor *color = [UIColor colorWithRed:(r/255.0) green:(g/255.0) blue:(b/255.0) alpha:1.0]; 

[self.view setBackgroundColor:color]; 
} 
} 
+0

Благодаря souvickcse! При добавлении этой строки это работает. Я также добавил! to! sender.selected. Теперь проблема в том, что ChangeColorButton не отключится? –

+0

можете ли вы обновить свой последний код? – souvickcse

+0

Я отправлю код в оригинальном порту, спасибо! Обновлен код выше. Полностью взломать вещи. Большое спасибо за помощь! –

Смежные вопросы