Ios 表格单元格中的复选标记按钮不工作
UItable单元格中的复选标记按钮不工作提前感谢,表格单元格中的复选标记按钮不工作Ios 表格单元格中的复选标记按钮不工作,ios,iphone,uitableview,Ios,Iphone,Uitableview,UItable单元格中的复选标记按钮不工作提前感谢,表格单元格中的复选标记按钮不工作 self.btn_acceptCheckmark = [[UIButton alloc] initWithFrame:CGRectMake(250 , 25, 20, 20)]; [self.btn_acceptCheckmark setBackgroundImage:[UIImage imageNamed:@"checkmarknormal.png"] forState:UIControlSt
self.btn_acceptCheckmark = [[UIButton alloc] initWithFrame:CGRectMake(250 , 25, 20, 20)];
[self.btn_acceptCheckmark setBackgroundImage:[UIImage imageNamed:@"checkmarknormal.png"] forState:UIControlStateNormal];
[self.btn_acceptCheckmark addTarget:self action:@selector(CheckMarkaction:) forControlEvents:UIControlEventTouchUpInside];
[self.btn_acceptCheckmark setBackgroundColor:[UIColor clearColor]];
self.btn_acceptCheckmark.clipsToBounds = YES;
cellforrowattindexpath:
表视图indexpath=4
else if (indexPath.section == 4){
if (indexPath.row == 0) {
lbl_offerertittle.text = @"Offerers";
[cell addSubview:self.btn_acceptCheckmark];
self.btn_acceptCheckmark.hidden=YES;
}
if ([[offersAsset valueForKey:@"offers"] isEqualToString:@"No listing"]) {
lbl_offererName.text = @"No offers available!";
lbl_offererName.textColor = [UIColor grayColor];
}
else {
self.btn_acceptCheckmark.hidden=NO;
lbl_offererCount.text = @"";
勾选按钮动作法
-(IBAction)CheckMarkaction:(id)sender {
if (self.btn_acceptCheckmark.isSelected==YES)
{
[self.btn_acceptCheckmark setBackgroundImage:[UIImage imageNamed:@"checkmarkactive.png"] forState:UIControlStateNormal];
/// self.btn_acceptCheckmark .backgroundColor=[UIColor clearColor];
[self.btn_acceptCheckmark setSelected:NO];
[self.tbl reloadData];
}else if (self.btn_acceptCheckmark.isSelected==NO)
{
[self.btn_acceptCheckmark setBackgroundImage:[UIImage imageNamed:@"checkmarkactive.png"] forState:UIControlStateNormal];
//self.btn_acceptCheckmark .backgroundColor=[UIColor clearColor];
[self.btn_acceptCheckmark setSelected:YES];
[self.tbl reloadData];
}
}
希望你至少得到了选中标记按钮。你可以使用下面的代码在UITableViewCell中切换按钮的图像。它对我有用。对于表视图单元格,我想您还必须获得索引路径
- (void)selectDistance: (UIButton *)button event:(UIEvent *)event{
NSIndexPath* indexPath = [self.table indexPathForRowAtPoint:
[[[event touchesForView:button] anyObject]
locationInView:self.table]];
if (button.selected) {
[button setBackgroundImage:[UIImage imageNamed:@"checkboxoff-5.png"] forState:UIControlStateNormal];
[button setSelected:NO];
}else{
[button setBackgroundImage:[UIImage imageNamed:@"checkboxon-5.png"] forState:UIControlStateNormal];
[button setSelected:YES];
}
在
CheckMarkaction
的第一行添加断点。单击按钮,查看它是否进入此方法。如果有多个单元格具有此按钮,则肯定存在问题,因为只有一个self.btn_acceptCheckmark
,但您尝试将其添加到不同的单元格。请定义“不工作”。期望的行为是什么?发生了什么事?正如@Hampotato所建议的,如果有多个单元格需要选中标记,您的方法将不起作用-这可能由特定的UITableViewCell子类处理得更好。我有多个单元格,如两个单元格扫描任何一个告诉我该怎么办?现在(void)selectDistance:(UIButton*)button event:(UIEvent*)event{此方法自身不调用您在initWithStyle中设置了什么:…?[self.btn_acceptCheckmark addTarget:self action:@selector(selectDistance:event:)forControlEvents:UIControlEventTouchUpInside];是,我已经提供了UIControlEventTouchUpInside,但没有使用尝试设置self.btn_acceptCheckmark.userInteractionEnabled=是您确定已正确在内部添加按钮吗