2017-03-03 10 views
-1

私は、ボタンのクリックに関する機能を開発しています。ボタンをクリックした場合、同じボタンをクリックすると、 2回目に別のラベルを追加する、5回目のボタンをクリックするなどの5つのラベルを追加する必要があります。ボタンをクリックしたときにテキストファイルを追加するObjective-C

-(IBAction) btnAddClicked: (id) sender { 
    if (_btnAdd.tag == 0) { 
     _lblAdd1.hidden = YES; 
    } 
    if (_btnAdd.tag == 1) { 
     _lblAdd2.hidden = YES; 
    } 
    if (_btnAdd.tag == 2) { 
     _lblAdd3.hidden = YES; 
    } 
    if (_btnAdd.tag == 3) { 
     _lblAdd4.hidden = YES; 
    } 
} 
+0

あなたが試したことを示してください! – Rikh

+0

stroyboardに5つのラベルがありますか? –

+0

はい、ボタンのクリックでそれらを表示する必要があります – Abhinav

答えて

0

は、あなたはあなたが他の最後には、あなたがボタンタグなどを設定]をクリックします以上続行できる1つまたは欲しいclicks.ifに基づいてタグを更新することができ

-(IBAction)btnAddClicked: (id) sender { 
    //Typecast to retrieve tag of current button. 
    UIButton *btn = (UIButton *) sender; 
    if (btn.tag == 0) { 
     _lblAdd1.hidden = YES; 
    } 
    if (btn.tag == 1) { 
     _lblAdd2.hidden = YES; 
    } 
    if (btn.tag == 2) { 
     _lblAdd3.hidden = YES; 
    } 
    if (btn.tag == 3) { 
     _lblAdd4.hidden = YES; 
    } 
} 
+0

正しく表示されない、常にbtn.tag == 0が実行される – Abhinav

+0

ボタンのタグを正しく設定していないということです。 – Teffi

0

イベントを送信してどのボタンかを決定しなければなりません0

- (IBAction)はbtnAddClicked:(ID)、送信者{

UIButton * BTN =(UIButton *)送信者を、

if (btn.tag == 0) { 
    _lblAdd1.hidden = YES; 
    btn.tag = 1; 
} 
else if (btn.tag == 1) { 
    _lblAdd2.hidden = YES; 
    btn.tag = 2; 
} 
else if (btn.tag == 2) { 
    _lblAdd3.hidden = YES; 
    btn.tag = 3; 
} 
else if (btn.tag == 3) { 
    _lblAdd4.hidden = YES; 
    btn.tag = 0; 
} 
0

次のコードは、ダイナミックテキストフィールドの作成のn個の数のためです:あなたはボタン、[更新]をクリックし、セルがtextFldが含まれています。この 1を使用するテーブルビュー、毎回行う方法に

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
return _count; } 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
TextViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; 
return cell; } 

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ 
UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 30)]; 
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 30)]; 
[button setTitle:@"Add TextField" forState:UIControlStateNormal]; 
button.backgroundColor = [UIColor blueColor]; 
[button addTarget:self action:@selector(addTextField) forControlEvents:UIControlEventTouchUpInside]; 
[footerView addSubview:button]; 
return footerView; } 

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ 
return 30; } 

-(void)addTextField{ 
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_count inSection:0]; 
_count++; 
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; } 
+0

質問は_swift_ではなく_objective-c_でタグ付けされています。 – Teffi

0

UITableView Byセルの数を最後のカウントよりもう一度。 例:最初に、変更可能な配列にindexPath/number/etcを追加し、その配列のカウントのためにtableviewをリロードすると、1つのセルに対してテーブルセルが作成されます。 今すぐ2番目のクリックで、その配列にもう1つ追加し、テーブルビュー、今すぐtableviewをリロードします。配列数のセルを作成します。これは現在2 ... SOです。あなたがそれを得ることを願って

+0

2. UIStackViewを使用し、クリックするたびにそのスタックビューのUITextFldとIt as Subviewを作成します。 –

関連する問題