gpt4 book ai didi

ios - 在 TableViewCell 中单击时 UIButton 标签重置

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:45:53 25 4
gpt4 key购买 nike

我有一个自定义的 tableview 单元格,当我单击单元格内的“数量按钮”时,单元格本身的值将重置为 Storyboard上原型(prototype)单元格定义的值(即“1”)。所以想象一下,我单击第一个单元格图像下方的按钮,按钮的标签从“5”变为“1”。我在按下按钮时注释掉了所有代码,所以假设那里没有任何变化。这是为什么?

enter image description here

我的自定义单元格 (.h)

@interface BLCartItemCell : UITableViewCell

@property (weak, nonatomic) IBOutlet UIImageView *imgView;
@property (weak, nonatomic) IBOutlet UILabel *title;
@property (weak, nonatomic) IBOutlet UIButton *quantityBtn;
@property (weak, nonatomic) IBOutlet UIButton *removeBtn;
@property (weak, nonatomic) IBOutlet UILabel *price;

@end

我的自定义单元格 (.m)

@implementation BLCartItemCell

@end

在我的 View Controller 中:

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

// Section 0: Cart cells
static NSString *cartCellIdentifier = @"cartCell";

BLCartItemCell *cell = [tableView dequeueReusableCellWithIdentifier:cartCellIdentifier];

if (cell == nil) {
cell = [[BLCartItemCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cartCell"];
// [cell.removeBtn addTarget:self action:@selector(removeBtnPressed:) forControlEvents:UIControlEventTouchUpInside];
// [cell.quantityBtn addTarget:self action:@selector(quantityBtnPressed:) forControlEvents:UIControlEventTouchUpInside];
}

// Grab the cart item from cart and set the cell properties
BLCartItem *cartItem = [self.cart.items objectAtIndex:indexPath.row];
cell.title.text = cartItem.title;
cell.quantityBtn.titleLabel.text = [NSString stringWithFormat:@"%i", cartItem.quantity];
cell.price.text = [NSString stringWithFormat:@"$ %.2f", [cartItem totalPrice]];
NSData *image_data = [[NSData alloc] initWithContentsOfURL:cartItem.image];
cell.imgView.image = [UIImage imageWithData:image_data];

// Buttons will keep track of cell index
cell.quantityBtn.tag = indexPath.row;
cell.removeBtn.tag = indexPath.row;

return cell;

我删除了与按钮关联的 IBActions,问题仍然存在。

最佳答案

我认为当你这样设置 buttonTitle 时有问题

cell.quantityBtn.titleLabel.text = [NSString stringWithFormat:@"%i", cartItem.quantity];

尝试:

[cell.quantityBtn setTitle: [NSString stringWithFormat:@"%i", cartItem.quantity] forState: UIControlStateNormal]];

阅读更多

Text change on UIButton doesn't stick

Apple Document

关于ios - 在 TableViewCell 中单击时 UIButton 标签重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24790785/

25 4 0