@ Влад Батаев, проверьте мой обновленный код:
1) Я дал идентификатор (tag
) для идентифицированного шахматного вида, который имеет белый цвет и черный цвет. Вы можете сделать это без идентификатора, но в случае множественного идентификатора subviews
лучший способ получить.
int horizontalOffSet = 2;
int squareSize = 40;
int verticalOffSet = 2;
for (int row = 0; row < 8; row++) {
for (int column = 0; column < 8; column++) {
CGRect square = {horizontalOffSet + (column * squareSize),
verticalOffSet + (row * squareSize),
squareSize, squareSize};
UIView *rect = [[UIView alloc] initWithFrame:square];
rect.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
horizontalOffSet = horizontalOffSet + squareSize;
if ((row + column) % 2 == 0) {
//verticalOffSet = verticalOffSet + squareSize;
horizontalOffSet = 0;
rect.tag = 101;
rect.backgroundColor = [UIColor whiteColor];
[self.view addSubview:rect];
} else {
//verticalOffSet = verticalOffSet + squareSize;
rect.tag = 102;
horizontalOffSet = 0;
rect.backgroundColor = [UIColor blackColor];
[self.view addSubview:rect];
}
}
2) Я выполнил событие смены цвета при нажатии UIButton
, поэтому вы должны использовать этот код после события поворота.
-(IBAction)changeColor:(UIButton *)btn{
for(UIView *rectViews in self.view.subviews){
UIColor *clrblck = [UIColor blackColor];
if(rectViews.backgroundColor == clrblck && rectViews.tag == 102){
rectViews.backgroundColor = [UIColor cyanColor];
}else if(rectViews.backgroundColor == clrblck && rectViews.tag == 101){
rectViews.backgroundColor = [UIColor purpleColor];
}else{
// you will get other views here..
}
}
}
- Я получил все подпредставления и проверил
backgroundColor
и tag
и изменил его backgroundColor
.
Примечание: измените имя представления в соответствии с именем вашего представления в loop
и где вы добавляете rect
как subviews
в вашем anotherRect
.
Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы. Удачного кодирования:)