gpt4 book ai didi

iphone - 从单个方法实例化一定数量的唯一对象

转载 作者:行者123 更新时间:2023-12-01 19:29:00 26 4
gpt4 key购买 nike

这是我一直无法动脑筋的事情……

假设我正在构建一个宽 8 个 UIViews 高 8 个 UIViews 的网格。它可以由任何 x, y 集合。它不必是 8 x 8。让我们随意并暂时坚持下去。

这个 init 方法(UIView 的子类的一部分)生成一个 8 行宽的 UIView:

    - (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 个 UI View ?

我已经尝试过使用 for、while、do 循环,但我承认,当涉及到是否可以将字符串作为参数传递给 init 方法时,我完全迷失了方向。

提前感谢您对此的任何见解。

最佳答案

你的意思是:

for (int i=0;i<8;i++) {
UIView* square = [[UIView alloc] initWithFrame:CGRectMake((i*x), (0*y), x, y)];
[self addSubview:square];
}

或(对于所有行):
for(int r=0;r<8;r++) {
for (int i=0;i<8;i++) {
UIView* square = [[UIView alloc] initWithFrame:CGRectMake((i*x), (r*y), x, y)];
[self addSubview:square];
}
}

关于iphone - 从单个方法实例化一定数量的唯一对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4100213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com