Przeglądaj źródła

1.图片预览的信息显示和隐藏动画效果

huangxiaodong 1 rok temu
rodzic
commit
3dee3b12bd

+ 93 - 0
创维盒子/双子星云手机/Class/Set/previewFile/imageDetailsScrollViewController.m

@@ -25,6 +25,8 @@
 
 @property(nonatomic,strong) previewLandscapeTopView*previewLandscapeTopV;
 @property(nonatomic,strong) previewLandscapeTopMoreView*previewLandscapeTopMoreV;
+
+@property(nonatomic,assign) BOOL isHideMsgType;//隐藏上下信息
 @end
 
 @implementation imageDetailsScrollViewController
@@ -161,6 +163,8 @@
     
     _previewLandscapeTopV.hidden = NO;
     
+    [self didClickScreenFun:NO];
+    
     [_previewLandscapeTopV mas_remakeConstraints:^(MASConstraintMaker *make) {
         make.left.mas_equalTo(0);
         make.right.mas_equalTo(0);
@@ -178,6 +182,8 @@
     
     _previewLandscapeTopV.hidden = YES;
     
+    [self didClickScreenFun:NO];
+    
     [self deletePreviewLandscapeTopMoreViewFun];
 }
 
@@ -246,6 +252,11 @@
         [weakSelf cycleScrollViewDidScrollToIndex:currentIndex];
     };
     
+    _curScrollView.clickItemOperationBlock = ^(NSInteger currentIndex) {
+        self->_isHideMsgType = !self->_isHideMsgType;
+        [weakSelf didClickScreenFun:self->_isHideMsgType];
+    };
+    
     _curEditTypeBottomView = [[editTypeBottomView alloc] init];
     _curEditTypeBottomView.isBlackType = YES;
     [self.view addSubview:_curEditTypeBottomView];
@@ -448,4 +459,86 @@
         }
     };
 }
+
+#pragma mark 点开了屏幕
+- (void)didClickScreenFun:(BOOL)isHideMsgType
+{
+    _isHideMsgType = isHideMsgType;
+    
+    if(isHideMsgType){//处理隐藏
+        if(_isPortraitType){
+            
+            CGRect BottomViewRect = _curEditTypeBottomView.frame;
+            CGRect fixBottomViewRect = CGRectMake(BottomViewRect.origin.x, BottomViewRect.origin.y + BottomViewRect.size.height, BottomViewRect.size.width, BottomViewRect.size.height);
+            
+            CGRect navBarBGViewRect = self.navBarBGView.frame;
+            CGRect fixNavBarBGViewRect = CGRectMake(navBarBGViewRect.origin.x, navBarBGViewRect.origin.y - navBarBGViewRect.size.height, navBarBGViewRect.size.width, navBarBGViewRect.size.height);
+            
+            [UIView animateWithDuration:0.3 animations:^{
+                self->_curEditTypeBottomView.frame = fixBottomViewRect;
+                self.navBarBGView.frame = fixNavBarBGViewRect;
+            } completion:^(BOOL finished) {
+                self->_curEditTypeBottomView.hidden = YES;
+                self.navBarBGView.hidden = YES;
+                
+                //frame 还原
+                self->_curEditTypeBottomView.frame = BottomViewRect;
+                self.navBarBGView.frame = navBarBGViewRect;
+            }];
+            
+        }
+        else{
+            CGRect TopViewRect = _previewLandscapeTopV.frame;
+            CGRect fixTopViewRect = CGRectMake(TopViewRect.origin.x, TopViewRect.origin.y - TopViewRect.size.height, TopViewRect.size.width, TopViewRect.size.height);
+            
+            [UIView animateWithDuration:0.3 animations:^{
+                self->_previewLandscapeTopV.frame = fixTopViewRect;
+            } completion:^(BOOL finished) {
+                self->_previewLandscapeTopV.hidden = YES;
+                //frame 还原
+                self->_previewLandscapeTopV.frame = TopViewRect;
+            }];
+            
+            
+        }
+    }
+    else{//处理显示
+        if(_isPortraitType){
+            
+            CGRect BottomViewRect = _curEditTypeBottomView.frame;
+            CGRect fixBottomViewRect = CGRectMake(BottomViewRect.origin.x, BottomViewRect.origin.y + BottomViewRect.size.height, BottomViewRect.size.width, BottomViewRect.size.height);
+            
+            CGRect navBarBGViewRect = self.navBarBGView.frame;
+            CGRect fixNavBarBGViewRect = CGRectMake(navBarBGViewRect.origin.x, navBarBGViewRect.origin.y - navBarBGViewRect.size.height, navBarBGViewRect.size.width, navBarBGViewRect.size.height);
+            
+            self->_curEditTypeBottomView.frame = fixBottomViewRect;
+            self.navBarBGView.frame = fixNavBarBGViewRect;
+
+            [UIView animateWithDuration:0.3 animations:^{
+                //frame 还原
+                self->_curEditTypeBottomView.frame = BottomViewRect;
+                self.navBarBGView.frame = navBarBGViewRect;
+            } completion:^(BOOL finished) {
+                self->_curEditTypeBottomView.hidden = NO;
+                self.navBarBGView.hidden = NO;
+            }];
+            
+        }
+        else{
+            _previewLandscapeTopV.hidden = NO;
+            
+            CGRect topViewRect = _previewLandscapeTopV.frame;
+            CGRect fixTopViewRect = CGRectMake(topViewRect.origin.x, topViewRect.origin.y - topViewRect.size.height, topViewRect.size.width, topViewRect.size.height);
+            
+            self->_previewLandscapeTopV.frame = fixTopViewRect;
+
+            [UIView animateWithDuration:0.3 animations:^{
+                //frame 还原
+                self->_previewLandscapeTopV.frame = topViewRect;
+            } completion:^(BOOL finished) {
+                self->_previewLandscapeTopV.hidden = NO;
+            }];
+        }
+    }
+}
 @end