0
나는 UIButton 객체의 배열을 가지고 있습니다. (나는 15 개의 버튼을 가지고 있으므로 쉽게 처리 할 수 있도록 배열에 저장하고 싶습니다). 배열을 반복하고 배경 이미지/버튼이 사용하는 이미지를 변경하고 싶습니다. UIButtons의 배열은 버튼 이미지를 변경할 수 없습니다.
@property (nonatomic, weak) UIImage *greenLight;
@property (nonatomic, weak) UIImage *yellowLight;
@property (nonatomic, weak) UIImage *redLight;
@property (weak, nonatomic) IBOutlet UIButton *task1Button;
@property (weak, nonatomic) IBOutlet UIButton *task2Button;
@property (weak, nonatomic) IBOutlet UIButton *task3Button;
@property (nonatomic, copy) NSMutableArray *buttonArray;
- (instancetype)init
{
self = [super init];
if(self){
[self.buttonArray addObject:self.task1Button];
[self.buttonArray addObject:self.task2Button];
[self.buttonArray addObject:self.task3Button];
self.greenLight = [UIImage imageNamed:@"greenlight.ICO"];
self.yellowLight = [UIImage imageNamed:@"yellowlight.ICO"];
self.redLight = [UIImage imageNamed:@"redlight.ICO"];
NSLog(@"init complete...");
}
return self;
}
그런 다음 나는
viewWillAppear
작품
viewWillAppear
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.task1Button setImage:self.redLight forState:UIControlStateNormal];
[(UIButton *)self.buttonArray[1] setImage:self.greenLight forState:UIControlStateNormal];
}
두 번째 줄에 다음을하고 버튼의 이미지를 변경 : 이것은 내가 현재이 설정 한 방법이다. 그러나 세 번째 줄은 그렇지 않습니다. 디버거는 오류를 발생시키지 않고 해당 행에 도달하는 코드를 표시하므로 버튼이 배열에있을 때 버튼 이미지를 설정하는 것이 왜 작동하지 않을지는 알 수 없습니다.
아이디어가 있으십니까? 이 당신의 대답에 마지막 줄을 교체
버튼 배열을 할당 하시겠습니까? – faviomob
코드 샘플에서 배열 할당이 누락되었습니다. self.buttonArray = [NSMutableArray new]; –