UITableViewCell上的按钮

时间:2012-03-01 10:11:49

标签: objective-c ios uitableview

我可以在tableview中创建一个按钮,我有一个优惠,并且我提供产品,所以我可以在一个表中按照优惠生成所有产品,所以我有一个按钮添加购物车,当用户添加到购物车时它将显示删除按钮它的确定,当我不会去其他视图,但当我回来它再次显示添加按钮,所以我怎么能得到删除按钮后添加和来到这个视图后请帮助我谢谢你

翻译

我想在tableview中创建一个按钮。按钮初始状态应为“添加到购物车”,当用户单击按钮时,我希望它更改为“删除”。

翻译

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 :(得分:0)

您应该使用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 *)的必要属性,如颜色或文本。

btw:你不应该在帧生成中使用绝对值。使用cell.contentView.frame属性创建按钮框架CGRect。