0

チェックボックスで小さなコンセプトをやっています。実際、チェックボックスの画像をテーブルのセルに配置しましたが、特定のチェックボックスを選択してテーブルビューでセルの値を取得する方法がわかりません。この問題を解決することで、どのような人も助けてくれますか。テーブルビューのスクリーンショットにコーディングを提供し、

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
     NSLog(@"in table view cell for row at index");

     RequestSongSelectingCell *cell = (RequestSongSelectingCell *) [tableView dequeueReusableCellWithIdentifier:@"requestsingcell"];
    if (cell==nil) 
    {

        [[NSBundle mainBundle] loadNibNamed:@"RequestSongSelectingCell" owner:self options:nil];
        NSLog(@"start");
        cell=requestingCell;
        NSLog(@"end");
    }

    NSDictionary *dict=[self.array objectAtIndex:indexPath.row];

    NSString *artistname=[dict objectForKey:@"artist"];
    NSLog(@"artistname is %@",artistname);

    cell.artistName.text=artistname;

    NSString *songtitle=[dict objectForKey:@"title"];
    NSLog(@"songtitle is %@",songtitle);
    cell.artistTitle.text=songtitle;

    return cell;
 }

-(IBAction)checkButtonPressed:(id)sender
{
    NSLog(@"check box button pressed");

    requestingCell.checkBoxButton.imageView.image=[UIImage imageNamed:@"checkbox-checked.png"];

}

ここに画像の説明を入力してください

ありがとう、よろしく、

ギリッシュ

4

1 に答える 1

2

RequestSongSelectingCell.xibファイルにボタンを追加していますか?

tableViewに追加すると、そのタグプロパティを設定できます。そして、buttonPressedメソッドでタグを取得できます。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    NSLog(@"in table view cell for row at index");

   RequestSongSelectingCell *cell = (RequestSongSelectingCell *) [tableView dequeueReusableCellWithIdentifier:@"requestsingcell"];
        if (cell==nil) 
    {

        [[NSBundle mainBundle] loadNibNamed:@"RequestSongSelectingCell" owner:self options:nil];
                NSLog(@"start");
        cell=requestingCell;
        NSLog(@"end");
    }
    cell.btn.tag = indexPath.row;
    // your customization
    return cell; 
}

-(IBAction)checkButtonPressed:(id)sender
{
    UIButton * btn = (UIButton*)sender;
    int selected_index = btn.tag;    // This is your index of selected cell

    NSLog(@"check box button pressed");

    requestingCell.checkBoxButton.imageView.image=[UIImage imageNamed:@"checkbox-checked.png"];

}

編集:選択を処理するには

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    NSLog(@"in table view cell for row at index");

   RequestSongSelectingCell *cell = (RequestSongSelectingCell *) [tableView dequeueReusableCellWithIdentifier:@"requestsingcell"];
        if (cell==nil) 
    {

        [[NSBundle mainBundle] loadNibNamed:@"RequestSongSelectingCell" owner:self options:nil];
                NSLog(@"start");
        cell=requestingCell;
        NSLog(@"end");
    }
//check if cell is already selected or not
        // if not selected, tag will be positive
        cell.btn.tag = indexPath.row;
        // if selected, tag will be negative
        cell.btn.tag = -indexPath.row;
        // your customization
        return cell; 
    }

-(IBAction)checkButtonPressed:(id)sender
{


    UIButton * btn = (UIButton*)sender;
    int selected_index = btn.tag;    // This is your index of selected cell


    //btn is the same btn image of which you need to change/toggle
    if(btn.tag > 0)     //its not selected
    {
            //set btn image as selected
            btn.tag = -(btn.tag);
            [btn setImage: forState:UIControlStateNormal];
    }
    else if(btn.tag < 0)     //its selected
    {
            //set btn image as unselected
            btn.tag = -(btn.tag);
            [btn setImage: forState:UIControlStateNormal];
    }
    NSLog(@"check box button pressed");

//        requestingCell.checkBoxButton.imageView.image=[UIImage imageNamed:@"checkbox-checked.png"];

    }
于 2011-03-24T07:08:39.657 に答える