我有一个tableview控制器类,一个tableviewcell子类和一个uibutton子类。 我正在tableviewcell子类中创建一个unbutton子类的实例,并初始化一个特定单元格位置的按钮。 然后我在tableview控制器类中使用此单元格。此外,我正在尝试向按钮添加IBAction。但它无法识别uibutton子类的对象,而其他一切工作正常。我在宣言中做错了什么?
tableviewcell.m
#import "tableviewcell.h"
#import "CustomCheckButton.h"
CustomCheckButton *starbtn = [[CustomCheckButton alloc] init];;
starbtn = [[CustomCheckButton alloc]initWithFrame:CGRectMake(243,0, 30, 30)];
tableviewcontroller.m
在cellForRowAtIndexPath对象中,startbtn无法识别:
#import "ScannedProductControllerViewController.h"
#import "imageCellCell.h"
tableviewcell*firstRowCell = (tableviewcell *)cell;
[firstRowCell.prodimage setImage: [UIImage imageNamed:@"test1.jpg"]];
[firstRowCell.label1 setText:@"17.5"];
[firstRowCell.label2 setText:@"Score"];
[firstRowCell.basket setImage: [UIImage imageNamed:@"Basket.jpg"]];
// reference of the home button to the buttonclick method
[firstRowCell.homebtn addTarget:self action:@selector(clickButton:) forControlEvents:UIControlEventTouchUpInside];
// reference of the favorites button to the buttonclick method
[firstRowCell.starbtn addTarget:self action:@selector(clickFavButton:) forControlEvents:UIControlEventTouchUpInside];
CustomCheckButton.h
#import <UIKit/UIKit.h>
@interface CustomCheckButton : UIButton {
BOOL _checked;
}
@property (nonatomic, setter = setChecked:) BOOL checked;
-(void) setChecked:(BOOL) check;
@end
答案 0 :(得分:1)
@interface TableViewCell : UITableViewCell
@property (nonatomic, strong) CustomCheckButton *startButton;
@end
@implementation TableViewCell
- (instancetype)init {
self = [super init];
self.startButton = [[CustomCheckButton alloc]initWithFrame:CGRectMake(243,0, 30, 30)];
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self.contentView addSubview:self.startButton];
}
@end
答案 1 :(得分:0)
首先,为什么不在故事板中创建单元格作为原型单元格或在XIB文件内部。
然后,为按钮创建一个IBAction并在单元格中对其进行响应。最后,为您的单元格制定一个协议,在点击按钮时通知代表。然后,您可以将表视图控制器设置为单元格的委托,并响应按下的按钮。如果您需要确定您正在使用哪个单元格,您甚至可以将单元格作为您使用的协议方法之一的参数传递。