0

添付のスクリーン ショットに記載されている要件があります。青い追加ボタンをクリックUItextfieldすると、最後のテキスト フィールドと textview の間にもう 1 つ挿入する必要があり、動的に挿入された新しい uitextfield の横に青い追加ボタンを表示する必要があります。これを達成する方法を誰かが提案できますか。すべてのフィールドを に配置しましたUIScrollview

ここに画像の説明を入力

スクロール ビューが有効になっていません:

ここに画像の説明を入力

4

5 に答える 5

4

次のようにできます:

previousTextField.h には、最初のアウトレットに接続されているというアウトレットがあります。名前が示すように、最後に追加された textField を格納します。

ここで実行中のプロジェクトを見つけてください。

-(IBAction)addTextField:(id)sender{
    float x=previousTextField.frame.origin.x;
    float y=previousTextField.frame.origin.y+50;//get y from previous textField and add 10 or so in it.
    float w=previousTextField.frame.size.width;
    float h=previousTextField.frame.size.height;
    CGRect frame=CGRectMake(x,y,w,h);
    UITextField *textField=[[UITextField alloc] initWithFrame:frame];
    textField.placeholder = @"Enter User Name or Email";


    textField.borderStyle = UITextBorderStyleRoundedRect;
    textField.font = [UIFont systemFontOfSize:15];
    textField.autocorrectionType = UITextAutocorrectionTypeNo;
    textField.keyboardType = UIKeyboardTypeDefault;
    textField.returnKeyType = UIReturnKeyDone;
    textField.clearButtonMode = UITextFieldViewModeWhileEditing;


    [self.view addSubview:textField];
    previousTextField=textField;
}

コンパイラのチェックではなく、アイデア/アルゴリズムの使い方

+ボタンの位置を変えて、見落としていました。私はあなたがそれを行うことができると思います:)

編集:上記のメソッドに以下を追加

//move addbutton which is an outlet to the button
CGRect frameButton=CGRectMake(addButton.frame.origin.x, addButton.frame.origin.y+50, addButton.frame.size.width, addButton.frame.size.height);
[addButton removeFromSuperview];
[addButton setFrame:frameButton];
[self.view addSubview:addButton];
于 2013-03-21T04:52:19.037 に答える
0

まず、UItextFieldのフレームを取得します。ここで、前のtextFeildのyPosを増やし、UITetFieldの新しい位置に置きます。そして、そのtextFieldの下にあるUITextFieldを再配置するには、各TextFieldのyPosを増やすだけです。

これがお役に立てば幸いです。

ではごきげんよう!!!

于 2013-03-21T04:53:30.137 に答える
0

出力

これを試して ::

.h ファイル内

@property(nonatomic, retain) IBOutlet UIScrollView *scr;
@property(nonatomic, retain) IBOutlet UITextField *txt;
@property(nonatomic, retain) IBOutlet UITextView *txtVw;
@property(nonatomic, retain) IBOutlet UIButton *btn;

-(IBAction)click:(id)sender;

.m ファイル内

int cnt;

float x = 0.0, y = 0.0, w = 0.0, h = 0.0;

- (void)viewDidLoad
{
    [super viewDidLoad];

    scr.delegate = self;
    scr.contentSize = CGSizeMake(0, 400);

    cnt = 0;
}

-(IBAction)click:(id)sender
{
    if (cnt == 0) {
       x=txt.frame.origin.x;
       y=txt.frame.origin.y + 50;//get y from previous textField and add 10 or so in it.
       w=txt.frame.size.width;
       h=txt.frame.size.height;
    }
    else
    {
       y+=50;
    }

    UITextField *textField=[[UITextField alloc] initWithFrame:CGRectMake(x, y, w, h)];
    textField.borderStyle = UITextBorderStyleRoundedRect;
    textField.placeholder = @"Enter User Name or Email";

    [scr addSubview:textField];

    [btn setFrame:CGRectMake(248, y, 30, 30)];

    float y1 = y + 100;
    [txtVw setFrame:CGRectMake(orign_x, y1, origin_w, origin_h)];

    cnt++;
}

うまくいけば、それは間違いなくあなたを助けるでしょう.

ありがとう。

于 2013-03-21T06:01:10.720 に答える
0

私のコードの出力を参照してください.. ここに画像の説明を入力

次のコードを使用できます...私はそれを行い、スクリーンショットに従って実行しています..hファイルでこの変数を宣言するだけです

      int newY,newY1;
      UIButton *btn;

次に、viewDidLoadメソッドの.mファイルに次のコードを追加します

   UITextField *txt=[[UITextField alloc]init];
   txt.frame=CGRectMake(50,30,140,30);
   txt.placeholder = @"Enter User Name or Email";
   txt.borderStyle = UITextBorderStyleRoundedRect;

   [self.view addSubview:txt];
   newY=txt.frame.origin.y;
   btn=[UIButton buttonWithType:UIButtonTypeContactAdd];
   btn.frame=CGRectMake(250,30, 30, 30);
   [btn addTarget:self action:@selector(addtxtField) forControlEvents:UIControlEventTouchUpInside];
   [self.view addSubview:btn];

& 次に、addtxtField メソッドを 1 つ作成します。以下を参照してください。

 -(void)addtxtField
{
newY=newY+50;

UITextField *nwtxt=[[UITextField alloc]init];
nwtxt.frame=CGRectMake(50,newY,140,30);
nwtxt.placeholder = @"Enter User Name or Email";
nwtxt.borderStyle = UITextBorderStyleRoundedRect;
[self.view addSubview:nwtxt];

btn.frame=CGRectMake(250,newY, 30, 30);
[self.view addSubview:btn];

}

それはあなたの要件に従って100%実行されています...

于 2013-03-21T05:54:32.640 に答える
0

追加ボタンで、サブビューにテキストフィールドを追加し、テキストフィールドに一意のタグを付けて、すべてのテキストフィールドを区別するのに役立ちます。フレームを設定するには、最後の textfield フレームの参照を取得し、それに応じて y 座標を設定します。

UITextField *textField = [[UITextField alloc] initWithFrame:yourFrame];
textField.delegate = self;
textField.tag=yourtag;
[scrollview addSubview:textField];
[textField release];//if arc is disable
于 2013-03-21T04:53:07.273 に答える