0

UITextField を作成するための配列があります。しかし、UITextField は同じフレームに残りますか?これが私のコードです。ボタンを押すと、新しい UITextField が作成されます。

-(IBAction)textFieldcreating{


    textfieldform = [[NSMutableArray alloc] init];
    textField1 = [[UITextField alloc] initWithFrame:CGRectMake(10, 10, 100, 40)];
    textField1.borderStyle = UITextBorderStyleRoundedRect;
    textField1.font = [UIFont systemFontOfSize:15];
    textField1.placeholder = @"enter text";
    textField1.autocorrectionType = UITextAutocorrectionTypeNo;
    textField1.keyboardType = UIKeyboardTypeDefault;
    textField1.returnKeyType = UIReturnKeyDone;
    textField1.clearButtonMode = UITextFieldViewModeWhileEditing;
    textField1.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;    
    textField1.delegate = self;

    [textfieldform addObject:textField1];

    int counter;
    counter = 0;
    if(counter < [textfieldform count])
    {


            textField1.frame = CGRectMake(textField1.frame.origin.x+30, textField1.frame.origin.x+40, textField1.frame.size.width+40, textField1.frame.size.height+50);
            [self.view addSubview:textField1];

        counter++;
    }

}
4

1 に答える 1

0

あなたがしているのは、新しい配列を作成し、すべての UITextView で xOrigin と yOrigin を同じに保つことです!

このようなことをしてください。

.h ファイルで、次のように宣言します。

@property (nonatomic, retain) NSMutableArray *textfieldform;
@property (nonatomic, readwrite) int yOrigin;

.m ファイル内、viewDidLoad関数内、

self.textfieldform = [NSMutableArray arrayWithCapacity:0];
yOrigin = 0;

これで、関数は次のようになります。

-(IBAction)textFieldcreating{


    //textfieldform = [[NSMutableArray alloc] init]; NO NEED OF THIS LINE NOW
    textField1 = [[UITextField alloc] initWithFrame:CGRectMake(10, yOrigin, 100, 40)];
    textField1.borderStyle = UITextBorderStyleRoundedRect;
    textField1.font = [UIFont systemFontOfSize:15];
    textField1.placeholder = @"enter text";
    textField1.autocorrectionType = UITextAutocorrectionTypeNo;
    textField1.keyboardType = UIKeyboardTypeDefault;
    textField1.returnKeyType = UIReturnKeyDone;
    textField1.clearButtonMode = UITextFieldViewModeWhileEditing;
    textField1.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;    
    textField1.delegate = self;

    [textfieldform addObject:textField1];

    yOrigin = yOrigin + 40 + 10; //old yorigin + btn height + y offset
}

xOrigin にも変更が必要な場合は、xOrigin で別の変数を取得します

于 2012-10-25T03:26:38.817 に答える