Это то, что я просто никогда не мог разузнать ...
Допустим, я строю сетку из 8 UIViews в ширину и 8 UIViews в высоту. Это может быть любой x, y установлен. Это не должно быть 8 х 8. Давайте просто будем произвольными и придерживаться этого пока.
Этот метод init (часть подкласса UIView) генерирует строку шириной 8 UIViews:
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
int x = 1;
int y = 1;
//row 01
UIView* row01Square01 = [[UIView alloc] initWithFrame:CGRectMake((0*x), (0*y), x, y)];
[self addSubview:row01Square01];
UIView* row01Square02 = [[UIView alloc] initWithFrame:CGRectMake((1*x), (0*y), x, y)];
[self addSubview:row01Square02];
UIView* row01Square03 = [[UIView alloc] initWithFrame:CGRectMake((2*x), (0*y), x, y)];
[self addSubview:row01Square03];
UIView* row01Square04 = [[UIView alloc] initWithFrame:CGRectMake((3*x), (0*y), x, y)];
[self addSubview:row01Square04];
UIView* row01Square05 = [[UIView alloc] initWithFrame:CGRectMake((4*x), (0*y), x, y)];
[self addSubview:row01Square05];
UIView* row01Square06 = [[UIView alloc] initWithFrame:CGRectMake((5*x), (0*y), x, y)];
[self addSubview:row01Square06];
UIView* row01Square07 = [[UIView alloc] initWithFrame:CGRectMake((6*x), (0*y), x, y)];
[self addSubview:row01Square07];
UIView* row01Square08 = [[UIView alloc] initWithFrame:CGRectMake((7*x), (0*y), x, y)];
[self addSubview:row01Square08];
}
return self;
}
Можно ли написать метод, который мог бы использовать этот код (с изменениями, конечно) для генерации последующих 7 строк UIViews? Еще лучше, возможно ли использовать 1 строку для генерации всех 64 представлений пользовательского интерфейса?
Я экспериментировал с использованием цикла for, while, do, но я признаю, что совершенно потерян, когда дело доходит до того, можете ли вы передать строку в качестве аргумента методу init.
Заранее благодарим за понимание этого вопроса.