ボタンの色を切り替えるボタンを作ろうとしています。何らかの理由で、以下のコードが機能しません...
**//Header (.h)**
@property UIColor *imageColor1;
@property UIColor *imageColor2;
@property UIButton *button1;
@property UIButton *button2;
@property CGRect viewBounds;
-(IBAction)changeColor:(id)sender;
-(IBAction)createButton;
**//Implementation (.m)**
@synthesize imageColor1;
@synthesize imageColor2;
@synthesize button1;
@synthesize button2;
@synthesize viewBounds;
-(IBAction)createButton{
self.viewBounds = self.view.bounds;
self.button1 = [UIButton buttonWithType:UIButtonTypeCustom];
self.button1.frame = CGRectMake(CGRectGetMidX(self.viewBounds)-30, CGRectGetMidY(viewBounds)-15, 60, 30);
self.button1.backgroundColor = self.imageColor1;
[self.view addSubview:button1];
self.button2 = [UIButton buttonWithType:UIButtonTypeCustom];
self.button2.frame = CGRectMake(CGRectGetMidX(self.viewBounds)-15, CGRectGetMidY(viewBounds)-30, 30, 60);
self.button2.backgroundColor = self.imageColor2;
[self.view addSubview:button2];
}
-(IBAction)changeColor:(id)sender{
int changeCount = 0;
int changeCount1 = 1;
NSArray *colors = [[NSArray alloc] initWithObjects:[UIColor redColor],[UIColor blueColor],[UIColor yellowColor],[UIColor magentaColor],[UIColor greenColor],[UIColor orangeColor],[UIColor purpleColor], nil];
if(changeCount < 7){
imageColor1 = [colors objectAtIndex:changeCount];
}
else{
changeCount = changeCount - 5;
imageColor1 = [colors objectAtIndex:changeCount];
}
if(changeCount1 < 7){
imageColor2 = [colors objectAtIndex:changeCount1];
}
else{
changeCount1 = changeCount1 - 5;
imageColor2 = [colors objectAtIndex:changeCount1];
}
changeCount++;
changeCount1++;
}
基本的に、ユーザーが「色の変更」ボタンをタップするたびに、変数changeCount
とchangeCount1
のカウントが増加し、 と の値self.imageColor1
がself.imageColor2
配列内の後続の値に変更されますcolors
。何らかの理由で、このコードは機能せず、色が変わりません。このcreateButton
方法は、押すたびに新しいボタンが表示されるため機能しますが、ボタンを作成してから色変更ボタンを押してから別のボタンを作成すると、新しいボタンの色は同じままです。したがって、基本的には、コードの何が問題なのかを知る必要があります。前もって感謝します。