diff --git a/ios/RCTBEEPickerManager/RCTBEEPickerManager.m b/ios/RCTBEEPickerManager/RCTBEEPickerManager.m index 164815219b0a072923f3d0766fe3076c51c20db5..7820e365a1e48195e5262ad5a5c1265dfb83843a 100644 --- a/ios/RCTBEEPickerManager/RCTBEEPickerManager.m +++ b/ios/RCTBEEPickerManager/RCTBEEPickerManager.m @@ -22,16 +22,26 @@ @synthesize bridge = _bridge; +- (dispatch_queue_t)methodQueue +{ + return dispatch_get_main_queue(); +} + ++ (BOOL)requiresMainQueueSetup +{ + return YES; +} + RCT_EXPORT_MODULE(); RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){ - + dispatch_async(dispatch_get_main_queue(), ^{ [[UIApplication sharedApplication].keyWindow endEditing:YES]; }); - + self.window = [UIApplication sharedApplication].keyWindow; - + NSString *pickerConfirmBtnText=indic[@"pickerConfirmBtnText"]; NSString *pickerCancelBtnText=indic[@"pickerCancelBtnText"]; NSString *pickerTitleText=indic[@"pickerTitleText"]; @@ -45,63 +55,63 @@ RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){ NSString *pickerToolBarFontSize=[NSString stringWithFormat:@"%@",indic[@"pickerToolBarFontSize"]]; NSString *pickerFontSize=[NSString stringWithFormat:@"%@",indic[@"pickerFontSize"]]; NSArray *pickerFontColor=indic[@"pickerFontColor"]; - + id pickerData=indic[@"pickerData"]; - + NSMutableDictionary *dataDic=[[NSMutableDictionary alloc]init]; - + dataDic[@"pickerData"]=pickerData; - + [self.window.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { - + if ([obj isKindOfClass:[BzwPicker class]]) { dispatch_async(dispatch_get_main_queue(), ^{ - + [obj removeFromSuperview]; }); } - + }]; - + if ([[UIDevice currentDevice].systemVersion doubleValue] >= 9.0 ) { self.height=250; }else{ self.height=220; } - + self.pick=[[BzwPicker alloc]initWithFrame:CGRectMake(0, SCREEN_HEIGHT, SCREEN_WIDTH, self.height) dic:dataDic leftStr:pickerCancelBtnText centerStr:pickerTitleText rightStr:pickerConfirmBtnText topbgColor:pickerToolBarBg bottombgColor:pickerBg leftbtnbgColor:pickerCancelBtnColor rightbtnbgColor:pickerConfirmBtnColor centerbtnColor:pickerTitleColor selectValueArry:selectArry weightArry:weightArry pickerToolBarFontSize:pickerToolBarFontSize pickerFontSize:pickerFontSize pickerFontColor:pickerFontColor]; - - + + _pick.bolock=^(NSDictionary *backinfoArry){ - + dispatch_async(dispatch_get_main_queue(), ^{ - + [self.bridge.eventDispatcher sendAppEventWithName:@"pickerEvent" body:backinfoArry]; }); }; - + dispatch_async(dispatch_get_main_queue(), ^{ - + [self.window addSubview:_pick]; }); - + } RCT_EXPORT_METHOD(show){ if (self.pick) { - + dispatch_async(dispatch_get_main_queue(), ^{ [UIView animateWithDuration:.3 animations:^{ - + [_pick setFrame:CGRectMake(0, SCREEN_HEIGHT-self.height, SCREEN_WIDTH, self.height)]; - + }]; }); }return; } RCT_EXPORT_METHOD(hide){ - + if (self.pick) { dispatch_async(dispatch_get_main_queue(), ^{ [UIView animateWithDuration:.3 animations:^{ @@ -122,13 +132,13 @@ RCT_EXPORT_METHOD(select: (NSArray*)data){ } RCT_EXPORT_METHOD(isPickerShow:(RCTResponseSenderBlock)getBack){ - + if (self.pick) { - + CGFloat pickY=_pick.frame.origin.y; - + if (pickY==SCREEN_HEIGHT) { - + getBack(@[@YES]); }else {