Как использовать звездочку в строке таблицы для iphone - PullRequest
0 голосов
/ 18 марта 2011
if ([stararray count] > 0) {
        for (int i = 0;i < [stararray count]; i++) {
            NSString *starstr =[stararray objectAtIndex:i];
            NSInteger starinteger = [starstr integerValue];
           btn = [[UIButton alloc] initWithFrame:kLabelRect2];
            btn.tag =starinteger - 1;
            NSLog(@"btnID1:%d",btn.tag);
            [btn setImage:[UIImage imageNamed:@"star.png"] forState:UIControlStateNormal];
            [btn addTarget:self action:@selector(starClicked:) 
          forControlEvents:UIControlEventTouchUpInside];

            [cell.contentView addSubview:btn];
            btn.hidden = inPseudoEditMode;
        }

        for (int i = 0;i < [nostararray count]; i++) {
        NSString *starstr =[nostararray objectAtIndex:i];
        NSInteger starinteger = [starstr integerValue];
        btn = [[UIButton alloc] initWithFrame:kLabelRect2];
            btn.tag =starinteger - 1;
            NSLog(@"btnID2:%d",btn.tag);
           [btn setImage:[UIImage imageNamed:@"dot.png"] forState:UIControlStateNormal];
           [btn addTarget:self action:@selector(starClicked:)    forControlEvents:UIControlEventTouchUpInside];
                                    [cell.contentView addSubview:btn];
btn.hidden = inPseudoEditMode;
        }

        //stararray = [[NSMutableArray alloc]init];
    }
    else {
        btn = [[UIButton alloc] initWithFrame:kLabelRect2];
        btn.tag =indexPath.row;
        NSLog(@"btnID2:%d",btn.tag);
        [btn setImage:[UIImage imageNamed:@"dot.png"] forState:UIControlStateNormal];
        [btn addTarget:self action:@selector(starClicked:) 
      forControlEvents:UIControlEventTouchUpInside];

        [cell.contentView addSubview:btn];
        btn.hidden = inPseudoEditMode;
    }

Ответы [ 2 ]

2 голосов
/ 18 марта 2011

Вы можете настроить UITableViewCell, чтобы иметь кнопку, которая при нажатии выполняет необходимое действие

Обновление

  -(void)starClicked:(id)sender 
    {

        UIButton *button = (UIButton *)sender;
        NSLog(@"btnID:%d",button.tag);
        if(button.tag == initialTag) {
            [button setImage:[UIImage imageNamed:@"star.png" forState:UIControlStateNormal]];
            button.tag = newTag;
        }
        else if(button.tag == newTag)
        {
           [button setImage:[UIImage imageNamed:@"dot.png" forState:UIControlStateNormal]];
           button.tag = initialTag;
        }

        NSLog(@"btnID:%d",btn.tag);

    }

Другой вариант

-(void)starClicked:(id)sender 
{

UIButton *button = (UIButton *)sender;
button.selected = !button.selected; // toggle the selected property, 

    if (button.selected)
    {

// code to change image for selected state. 
    }
    else
    {
// code to change image for normal state. 
    }
}
0 голосов
/ 18 марта 2011

Вы можете добавить UIButton к ячейкам таблицы, которые будут переключаться, когда пользователь нажимает их.

-(void) toggleStarButton:(id)sender
{
    if([sender tag]== 0)
    {
        [sender setImage:[UIImage imageNamed:@"star.png"] forState:UIControlStateNormal];
        [sender setTag:1];


    else if([sender tag]==1)
    {
        [sender setImage:[UIImage imageNamed:@"unStar.png"] forState:UIControlStateNormal];
        [sender setTag:0];

    }
}
...