Кнопка на UITableViewCell - PullRequest
       2

Кнопка на UITableViewCell

0 голосов
/ 01 марта 2012

я могу создать кнопку в табличном представлении, и у меня есть предложения, и в этих предложениях у меня есть продукты, поэтому я могу сгенерировать все продукты в соответствии с предложением в одной таблице, поэтому у меня есть кнопка для добавления корзины, когда пользователь добавляет ее в корзину, она будет отображатьсяКнопка «Удалить» - это нормально, когда я не перехожу в другое представление, но когда я вернулся, он снова показывает кнопку «Добавить», так как я могу получить кнопку «Удалить» после добавления и после того, как пришел в это представление, пожалуйста, помогите мне, спасибо

Перевод

Я хочу создать кнопку в виде таблицы.Начальное состояние кнопки должно быть «Добавить в корзину», и когда пользователь нажимает кнопку, я хочу, чтобы она изменилась на «Удалить».

Перевод

UIButton *btn = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
btn.frame = CGRectMake(230, 25, 73, 40) ;
btn.tag = indexPath.row+1;
btn.titleLabel.font = [UIFont boldSystemFontOfSize:15];

for (int i=0;i<[[[productsArray valueForKey:@"product"] valueForKey:@"productId"]  count];  i++)
{ 


    BOOL status=FALSE;

    for (int j=0; j<[[appDelegate AddingCartArray]   count]; j++) 
    {

    NSString *pstr=[NSString stringWithFormat:@"%@",[[[productsArray valueForKey:@"product"] valueForKey:@"productId"] objectAtIndex:i]];
    NSLog(@"pstr %@",pstr);
    NSString *cstr=[NSString stringWithFormat:@"%@",[[[appDelegate AddingCartArray]valueForKey:@"productId"]  objectAtIndex:j]];
    NSLog(@"cstr %@",cstr);

        if([[[productsArray valueForKey:@"product"] valueForKey:@"productId"] objectAtIndex:i] == [[[appDelegate AddingCartArray]valueForKey:@"productId"]  objectAtIndex:j])

        {
            status =TRUE;
        }

    }
    if(status)
    {
        [btn setBackgroundImage:[UIImage imageNamed:@"RemovetoCart.png"] forState:UIControlStateNormal];
        [btn addTarget:self action:@selector(Remove:) forControlEvents:UIControlEventTouchUpInside];
    }   



    else {
        [btn setBackgroundImage:[UIImage imageNamed:@"adtoCart.png"] forState:UIControlStateNormal];
        [btn addTarget:self action:@selector(addCartClicked:) forControlEvents:UIControlEventTouchUpInside];
    }



}

[cell addSubview:btn];

[btn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];

[btn release];

1 Ответ

0 голосов
/ 01 марта 2012

Вы должны использовать метод, делегированный из UITableView, чтобы добавить объекты в UITableViewCell:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (!cell)
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
// your button code generation here and assigning touch event to it
    [cell.contentView addSubview:btn]
    return cell;
}

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

Кстати: вы не должны использовать абсолютные значения при генерации кадров. Используйте свойство cell.contentView.frame для создания фрейма кнопки CGRect.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...