2011-12-07 3 views
1

私はたくさんのテキストフィールドを作成しています。私は垂直それらを積み重ねていますので、私は使用します。各テキストボックスが作成された後変数を作成し、それを増やして新しい値を得たい

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

はその後、私をインクリメントします。

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++; 

私は1

の値に更新されますしmyRectを再割り当てするためにこれを行うには良い方法があっている必要があるので、私はの更新値を取得するにはmyRectを再割り当てする必要はありません。私?

答えて

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)を使用しますが、それはサイドトピック;)

+0

これはうまくいく、毎回myRectを再割り当てする必要があり、i ++をこれに置き換えるだけだ。 – Padin215

+0

助けてくれてうれしいですが、CGRect構造を再割り当てする "コスト"がゼロにとても近く、心配する必要はないはずです。 [早期最適化](http://en.wikipedia.org/wiki/Program_optimization#When_to_optimize)に注意してください! –

+0

hehe、私は最適化のために行っていたわけではありませんでした。私はちょうどその行をcopyig/pasteingに疲れました。= D – Padin215

2

毎回myRect = CGRectOffset(myRect, 0, 45);を使用してください。すでにオフセットされている矩形をオフセットするため、ここでは「i」は使用されません。

+0

ですこれは、int私を取り除くために動作しますが、私はまだ各テキストボックスの後に "myRect"を再割り当てする必要があります。私はそれをする必要がないことを望んでいた。 – Padin215

関連する問題