【发布时间】:2018-07-26 00:18:20
【问题描述】:
我有一个 UIButton 点击发送者如下:-
-(IBAction)clipButtonClick:(UIButton *)sender
{
sender.selected = ! sender.selected;
if (sender.selected)
{
[btnClipCategory setImage:[UIImage imageNamed:@"imgClip_HL"] forState:UIControlStateSelected];
NSMutableArray* indexArray = [NSMutableArray array];
for (NSInteger i = 0; i < self.arySubCategory.count; i++)
{
[aryCheckCategoryList replaceObjectAtIndex:i withObject:@"YES"];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
[indexArray addObject:indexPath];
dispatch_async(dispatch_get_main_queue(), ^{
[self.rightTableView reloadData];
});
}
}
else
{
[btnClipCategory setImage:[UIImage imageNamed:@"imgClip"] forState:UIControlStateNormal];
NSMutableArray* indexArray = [NSMutableArray array];
for (NSInteger i = 0; i < self.arySubCategory.count; i++)
{
[aryCheckCategoryList replaceObjectAtIndex:i withObject:@"NO"];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
[indexArray addObject:indexPath];
dispatch_async(dispatch_get_main_queue(), ^{
[self.rightTableView reloadData];
});
}
}
}
当我点击按钮时,发件人总是会点击选定的选项。
如果我将发件人更改为示例代码,如下所示,我的应用程序将按预期正常工作。任何的想法?请帮忙。谢谢。
-(IBAction)clipButtonClick:(UIButton *)sender
{
sender.selected = ! sender.selected;
if (sender.selected)
{
[btnClipCategory setImage:[UIImage imageNamed:@"imgClip_HL"] forState:UIControlStateSelected];
NSLog(@"Selected. Will Hit here");
}
else
{
[btnClipCategory setImage:[UIImage imageNamed:@"imgClip"] forState:UIControlStateNormal];
NSLog(@"Non Selected. Will Hit here");
}
}
已编辑 我将按钮放在 willDisplayHeaderView 下。
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section{
UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
btnClipCategory = [UIButton buttonWithType:UIButtonTypeCustom];
[btnClipCategory setFrame:CGRectMake(header.frame.size.width - 45, header.frame.size.height * 0.2, ScreenW * 0.1, ScreenW * 0.1)];
[btnClipCategory addTarget:self action:@selector(clipButtonClick:) forControlEvents:UIControlEventTouchUpInside];
[header addSubview:btnClipCategory];
}
【问题讨论】:
-
sender视图是否位于rightTableView单元格内的某个位置? -
嗨@EgorKomarov,我把它放在willDisplayHeaderView下。您可以参考上面的编辑代码
标签: ios objective-c uibutton