想要创建一个变量,增加它并获得新值

时间:2011-12-07 22:23:24

标签: iphone objective-c ios

我正在创建一堆文本字段。我正在垂直堆叠它们,所以我使用:

CGRectMake(193, ((i * 45) + 45), 240, 30)

然后在创建每个文本框后,我增加i。

int i = 0

CGRect myRect = CGRectMake(193, ((i * 45) + 45), 240, 30)
UITextField *myTextField01 = [[UITextField alloc] initWithFrame:myRect];
//format and add to view text field
i++;

//create next text field
myRect = CGRectMake(193, ((i * 45) + 45), 240, 30) //can i get rid of this line?

UITextField *myTextField01 = [[UITextField alloc] initWithFrame:myRect];
//format and add to view text field
i++;

我需要重新分配myRect以使我更新为1的值。

有更好的方法可以做到这一点,所以我不需要重新分配myRect来获取i的更新值吗?

2 个答案:

答案 0 :(得分:2)

每次都使用myRect = CGRectOffset(myRect, 0, 45);。这里没有使用“i”,因为你偏移了已经偏移的矩形。

答案 1 :(得分:2)

CGRect是一个结构体,因此您可以直接递增内部字段:

CGRect myRect = CGRectMake(193, 45, 240, 30);
UITextField *myTextField01 = [[UITextField alloc] initWithFrame:myRect];

myRect.origin.y += 45;
UITextField *myTextField02 = [[UITextField alloc] initWithFrame:myRect];

myRect.origin.y += 45;
UITextField *myTextField03 = [[UITextField alloc] initWithFrame:myRect];

我还会使用循环和某种容器(可能是NSArray),但这是一个副主题;)