Sfoglia il codice sorgente

语音添加震动反馈

桂欢 1 anno fa
parent
commit
1d77fcad89

+ 2 - 0
SLAiELTS/SLAiELTS/ViewControllers/MessageVC/SLMessageViewController.h

@@ -11,6 +11,8 @@
 
 #define SLMikeSegMentBgTag 112200
 
+#define SLImHintLabelTag 112233
+
 NS_ASSUME_NONNULL_BEGIN
 
 @interface SLMessageViewController : SLBaseViewController

+ 3 - 2
SLAiELTS/SLAiELTS/ViewControllers/MessageVC/SLMessageViewController.m

@@ -65,9 +65,9 @@
     };
     self.mikeInputView.hidden = YES;
     [self.view addSubview:self.mikeInputView];
-    [self.view bringSubviewToFront:self.mikeInputView];
     [self.view bringSubviewToFront:self.navigationBar];
-    
+    [self.view bringSubviewToFront:self.mikeInputView];
+
     [self nuisdkPlay];
     [self.KVOController observe:self.mikeInputView.contentView keyPath:@"hidden" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld block:^(id  _Nullable observer, id  _Nonnull object, NSDictionary<NSKeyValueChangeKey,id> * _Nonnull change) {
         if (![change[NSKeyValueChangeNewKey] boolValue]) {
@@ -122,6 +122,7 @@
     }
 }
 
+
 #pragma mark --键盘弹出
 - (void)keyboardWillChangeFrame:(NSNotification *)notification {
         //取出键盘动画的时间(根据userInfo的key----UIKeyboardAnimationDurationUserInfoKey)

+ 15 - 1
SLAiELTS/SLAiELTS/ViewControllers/MessageVC/Views/SLMikeInputView.m

@@ -6,7 +6,7 @@
 //
 
 #import "SLMikeInputView.h"
-
+#import "SLMessageViewController.h"
 @interface SLMikeInputView()
 
 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *imgHeightConst;
@@ -72,6 +72,13 @@
         self.contentView.hidden = NO;
         NSLog(@"SLMikeInputView long pressTap state :begin");
         [self.nuiSpeechRecognizer startSpeechRecognizer];
+        UIImpactFeedbackGenerator *generator = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleHeavy];
+        [generator impactOccurred];
+        SLMessageViewController *vc = (SLMessageViewController *)self.viewController;
+        if ([vc isKindOfClass:SLMessageViewController.class]) {
+            UIView *view = [vc.view viewWithTag:SLImHintLabelTag];
+            view.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:0.5];
+        }
     }else if (paramSender.state == UIGestureRecognizerStateChanged){
 
     }else if (paramSender.state == UIGestureRecognizerStateEnded){
@@ -79,6 +86,13 @@
         self.contentView.hidden = YES;
         self.frame = self.oldRect;
         [self.nuiSpeechRecognizer stopSpeechRecognizer:!isContainCancelPath];
+        SLMessageViewController *vc = (SLMessageViewController *)self.viewController;
+        if ([vc isKindOfClass:SLMessageViewController.class]) {
+            [UIView animateWithDuration:1 animations:^{
+                UIView *view = [vc.view viewWithTag:SLImHintLabelTag];
+                view.backgroundColor = [UIColor whiteColor];
+            }];
+        }
     }else {
         NSLog(@"SLMikeInputView long pressTap state :end");
         [self.nuiSpeechRecognizer stopSpeechRecognizer:NO];

+ 4 - 1
SLAiELTS/SLAiELTS/ViewControllers/MessageVC/Views/YMChatBottomView.m

@@ -69,8 +69,10 @@ static const NSInteger btnTag = 20000;
         make.top.greaterThanOrEqualTo(self.textBgView).offset(0).priority(1000);
         make.right.equalTo(self.rightSendBtn.mas_left).offset(-8);
     }];
-    
     [self btnClick:self.leftBtn];
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [self btnClick:self.leftBtn];
+    });
 }
 
 - (void)btnClick:(UIButton *)btn
@@ -179,6 +181,7 @@ static const NSInteger btnTag = 20000;
         _imHintLabel.backgroundColor = [UIColor whiteColor];
         _imHintLabel.textAlignment = NSTextAlignmentCenter;
         _imHintLabel.userInteractionEnabled = YES;
+        _imHintLabel.tag = SLImHintLabelTag;
         [self addSubview:_imHintLabel];
     }
     return _imHintLabel;