我正在创建一堆文本字段。我正在垂直堆叠它们,所以我使用:
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的更新值吗?
答案 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
),但这是一个副主题;)