|
|
@@ -11,6 +11,7 @@
|
|
|
#import "KPIButton.h"
|
|
|
#import "XYCommon.h"
|
|
|
#import "KPILegendCell.h"
|
|
|
+#import "KPIRepeatTapGestureRecognizer.h"
|
|
|
|
|
|
#define TAG_INDEX 1024
|
|
|
|
|
|
@@ -175,19 +176,6 @@
|
|
|
[self.itemsContainer addSubview:btn];
|
|
|
}
|
|
|
|
|
|
-- (void)labelClicked:(UIButton *)sender {
|
|
|
- NSInteger index = sender.tag - TAG_INDEX;
|
|
|
- NSDictionary *json = _infoDic;
|
|
|
- NSMutableArray * itemsArr = json[@"arr_val"];
|
|
|
- NSMutableDictionary* item = [itemsArr objectAtIndex:index];
|
|
|
- //
|
|
|
- sender.selected = !sender.selected;
|
|
|
- [item setObject:@(sender.selected) forKey:@"display"];
|
|
|
-// [itemsArr replaceObjectAtIndex:index withObject:item];
|
|
|
-// [self.infoDic setObject:itemsArr forKey:@"arr_val"];
|
|
|
- [self setInfoDic:self.infoDic];
|
|
|
-}
|
|
|
-
|
|
|
- (void)awakeFromNib {
|
|
|
[super awakeFromNib];
|
|
|
// Initialization code
|
|
|
@@ -262,6 +250,46 @@
|
|
|
- (IBAction)nextItemBtnClick:(UIButton *)sender {
|
|
|
|
|
|
|
|
|
+}
|
|
|
+
|
|
|
+- (void)labelClicked:(UIButton *)sender {
|
|
|
+ NSLog(@"labelClicked");
|
|
|
+ NSInteger index = sender.tag - TAG_INDEX;
|
|
|
+ NSDictionary *json = _infoDic;
|
|
|
+ NSMutableArray * itemsArr = json[@"arr_val"];
|
|
|
+ NSMutableDictionary* item = [itemsArr objectAtIndex:index];
|
|
|
+ //
|
|
|
+ sender.selected = !sender.selected;
|
|
|
+ [item setObject:@(sender.selected) forKey:@"display"];
|
|
|
+ // [itemsArr replaceObjectAtIndex:index withObject:item];
|
|
|
+ // [self.infoDic setObject:itemsArr forKey:@"arr_val"];
|
|
|
+ [self setInfoDic:self.infoDic];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)legendBtnTaped:(UITapGestureRecognizer *)sender {
|
|
|
+
|
|
|
+ [self labelClicked:(KPIButton *)sender.view];
|
|
|
+// [self performSelector:@selector(labelClicked:) withObject:sender afterDelay:0.3];
|
|
|
+// NSLog(@"tap 1");
|
|
|
+}
|
|
|
+
|
|
|
+- (void)legendBtnRepeatTaped:(UITapGestureRecognizer *)sender {
|
|
|
+// [NSObject cancelPreviousPerformRequestsWithTarget:sender selector:@selector(labelClicked:) object:sender];
|
|
|
+// NSLog(@"tap 2");
|
|
|
+
|
|
|
+// KPIButton *button = (KPIButton *)sender.view;
|
|
|
+// if (!button.selected) {
|
|
|
+// return;
|
|
|
+// }
|
|
|
+ if (self.delegate && [self.delegate respondsToSelector:@selector(KPICell:repeatClickLegendAtIndex:withItem:)]) {
|
|
|
+ NSInteger index = sender.view.tag - TAG_INDEX;
|
|
|
+// NSDictionary *json = _infoDic;
|
|
|
+// NSArray * itemsArr = json[@"arr_val"];
|
|
|
+// NSMutableDictionary* item = [itemsArr objectAtIndex:index];
|
|
|
+
|
|
|
+ [self.delegate KPICell:self repeatClickLegendAtIndex:index withItem:_infoDic];
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
#pragma mark - <选中扇形回调>
|
|
|
@@ -365,8 +393,20 @@
|
|
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
|
|
|
|
KPILegendCell *cell = [tableView dequeueReusableCellWithIdentifier:@"KPILegndCell" forIndexPath:indexPath];
|
|
|
- [cell.btn_0 removeTarget:self action:@selector(labelClicked:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
- [cell.btn_1 removeTarget:self action:@selector(labelClicked:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
+// [cell.btn_0 removeTarget:self action:@selector(labelClicked:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
+// [cell.btn_1 removeTarget:self action:@selector(labelClicked:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
+
|
|
|
+// [cell.btn_0 removeTarget:self action:@selector(legendBtnTaped:) forControlEvents:UIControlEventTouchDown];
|
|
|
+// [cell.btn_1 removeTarget:self action:@selector(legendBtnTaped:) forControlEvents:UIControlEventTouchDown];
|
|
|
+// [cell.btn_0 removeTarget:self action:@selector(legendBtnRepeatTaped:) forControlEvents:UIControlEventTouchDownRepeat];
|
|
|
+// [cell.btn_1 removeTarget:self action:@selector(legendBtnRepeatTaped:) forControlEvents:UIControlEventTouchDownRepeat];
|
|
|
+
|
|
|
+ for (UIGestureRecognizer *g in cell.btn_0.gestureRecognizers) {
|
|
|
+ [cell.btn_0 removeGestureRecognizer:g];
|
|
|
+ }
|
|
|
+ for (UIGestureRecognizer *g in cell.btn_1.gestureRecognizers) {
|
|
|
+ [cell.btn_1 removeGestureRecognizer:g];
|
|
|
+ }
|
|
|
|
|
|
NSArray * itemsArr = _infoDic[@"arr_val"];
|
|
|
|
|
|
@@ -411,7 +451,21 @@
|
|
|
btn.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
|
|
|
btn.selected = display;
|
|
|
btn.tag = TAG_INDEX + index;
|
|
|
- [btn addTarget:self action:@selector(labelClicked:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
+// [btn addTarget:self action:@selector(labelClicked:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
+
|
|
|
+// [btn addTarget:self action:@selector(legendBtnTaped:) forControlEvents:UIControlEventTouchDown];
|
|
|
+// [btn addTarget:self action:@selector(legendBtnRepeatTaped:) forControlEvents:UIControlEventTouchDownRepeat];
|
|
|
+
|
|
|
+ UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(legendBtnTaped:)];
|
|
|
+ tap.numberOfTapsRequired = 1;
|
|
|
+ KPIRepeatTapGestureRecognizer *repeatTap = [[KPIRepeatTapGestureRecognizer alloc] initWithTarget:self action:@selector(legendBtnRepeatTaped:)];
|
|
|
+ repeatTap.numberOfTapsRequired = 2;
|
|
|
+
|
|
|
+ [tap requireGestureRecognizerToFail:repeatTap];
|
|
|
+
|
|
|
+ [btn addGestureRecognizer:tap];
|
|
|
+ [btn addGestureRecognizer:repeatTap];
|
|
|
+
|
|
|
}
|
|
|
|
|
|
#pragma mark - Touch
|