0

私は iOS が初めてで、テーブルビューで動的にボタンを作成しています。チェック用のボタンに画像を設定し、チェックを外しました。ボタンをタップ (またはチェック) すると、インデックスパス行のデータが配列に追加されます。選択を解除すると、配列からデータが削除されます。私を助けてください

-(void)btnForCheckBoxClicked:(id)sender
{

UIButton *tappedButton = (UIButton*)sender;

indexForCheckBox= [sender tag];


if([tappedButton.currentImage isEqual:[UIImage imageNamed:@"checkbox_unchecked.png"]]) 
{

    [sender  setImage:[UIImage imageNamed: @"checkbox_checked.png"] forState:UIControlStateNormal];
    strinForCheckBox= [ApplicationDelegate.ArrayForSearchResults objectAtIndex:indexForCheckBox];
    [arrForCheckBox addObject:strinForCheckBox];
    NSLog(@"Sender Tag When Add %d", indexForCheckBox);
    NSLog(@"Array Count Check Box %d",[arrForCheckBox count]);

}

else
{

        [sender setImage:[UIImage imageNamed:@"checkbox_unchecked.png"]forState:UIControlStateNormal];
        [arrForCheckBox removeObjectAtIndex:indexForCheckBox];
        NSLog(@"Sender Tag After Remove %d", indexForCheckBox);
        NSLog(@"Array Count Uncheck Box %d",[arrForCheckBox count]);


   }


}
4

4 に答える 4

2
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    }

    if ([selectedRowsArray containsObject:[contentArray objectAtIndex:indexPath.row]) {
        cell.imageView.image = [UIImage imageNamed:@"checked.png"];
    }
    else {
       cell.imageView.image = [UIImage imageNamed:@"unchecked.png"];
    }
    UITapGestureRecogniser *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleChecking:)
    [cell.imageView addGestureRecognizer:tap];
    [tap release];

    cell.textLabel.text = [contentArray objectAtIndex];
    return cell;
}

- (void) handleChecking:(UITapGestureRecognizer *)tapRecognizer {
    CGPoint tapLocation = [tapRecognizer locationInView:self.tableView];
    NSIndexPath *tappedIndexPath = [self.tableView indexPathForRowAtPoint:tapLocation];

    if (selectedRowsArray containsObject:[contentArray objectAtIndex:tappedIndexPath.row]) {
        [selectedRowsArray removeObject:[contentArray objectAtIndex:tappedIndexPath.row]];
    }
    else {
        [selectedRowsArray addObject:[contentArray objectAtIndex:tappedIndexPath.row]];
    }
    [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:tappedIndexPath] withRowAnimation: UITableViewRowAnimationFade];
}
于 2012-05-05T11:54:41.357 に答える
1

この質問は少し前に答えられたと思います!最初にそれをチェックして、これがあなたが探しているものかどうか教えてください?

チェックボックスをUITableViewCellに追加するには??

画像 http://img208.yfrog.com/img208/6119/screenshotkmr.png

于 2012-05-05T11:48:48.547 に答える
0

これをボタン クリック メソッドに追加できます。

最初に、1 回のクリックで yes を設定し、2 回目のクリックで No を設定する Bool 値を設定し、最初にクリックすると、配列 addobject プロパティを使用して配列にそのインデックス値を追加し、他のクリックで removeobject プロパティを追加します。

-(void)list
{

if(isCheck==YES)
{
    //add array object  here
    isCheck=NO;
}
else if(isCheck==NO)
{
  //remove array object here
   isCheck=YES;
}

}
于 2012-05-05T11:48:24.307 に答える