From e1e04313deac68fa14ae69033717528da5aae8dd Mon Sep 17 00:00:00 2001 From: gjs <1353990812@qq.com> Date: Thu, 25 Oct 2018 09:40:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=8B=E5=8A=BF=E6=B2=A1?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=8A=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9A?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E9=80=9A=E8=BF=87=20setPhoto:(PYPhoto=20*)ph?= =?UTF-8?q?oto=20=E8=AE=BE=E7=BD=AE=E3=80=82=20//=20=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=9B=BE=E7=89=87=20PYPhoto=20*photo=20=3D=20[[PYPhoto=20alloc?= =?UTF-8?q?]=20init];=20//=20...=E5=88=9D=E5=A7=8B=E5=8C=96=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E4=B8=80=E4=BA=9B=E5=B1=9E=E6=80=A7=20//=20=E7=84=B6?= =?UTF-8?q?=E5=90=8E=E8=B5=8B=E5=80=BC=E8=B0=83=E7=94=A8=20setPhoto:(PYPho?= =?UTF-8?q?to=20*)photo=20photoView.photo=20=3D=20photo;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/PYPhotosPreviewController.m | 44 +++++++++++++++++-- PYPhotoBrowser/View/PYPhotosView.m | 13 ++++-- 2 files changed, 50 insertions(+), 7 deletions(-) diff --git a/PYPhotoBrowser/Controller/PYPhotosPreviewController.m b/PYPhotoBrowser/Controller/PYPhotosPreviewController.m index 451455b..988a26a 100755 --- a/PYPhotoBrowser/Controller/PYPhotosPreviewController.m +++ b/PYPhotoBrowser/Controller/PYPhotosPreviewController.m @@ -106,6 +106,41 @@ - (void)changeNavBarState [self setNeedsStatusBarAppearanceUpdate]; self.navigationController.navigationBar.py_y = self.statusBarHidden ? -self.navigationController.navigationBar.py_height : [UIApplication sharedApplication].statusBarFrame.size.height; } completion:nil]; + + /* 改动方案1 + [UIView animateWithDuration:duration animations:^{ + self.navBarAnimating = YES; + self.statusBarHidden = self.navigationController.navigationBar.py_y > 0; + //[self setNeedsStatusBarAppearanceUpdate]; + self.navigationController.navigationBar.py_y = self.statusBarHidden ? -self.navigationController.navigationBar.py_height : [UIApplication sharedApplication].statusBarFrame.size.height; + } completion:nil]; + */ + + /* 改动方案2 + CGFloat statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height; + CGFloat navBarHeight = self.navigationController.navigationBar.py_height; + CGFloat proportion = statusBarHeight/(statusBarHeight+navBarHeight); + self.statusBarHidden = self.navigationController.navigationBar.py_y >= 0; + if (!self.statusBarHidden) { + proportion = 1-proportion; + } + [UIView animateWithDuration:duration*proportion animations:^{ + self.navBarAnimating = YES; + //self.navigationController.navigationBar.py_y = self.statusBarHidden ? 0 : statusBarHeight-navBarHeight; + self.navigationController.navigationBar.py_y = 0; + if (self.statusBarHidden) { + [self setNeedsStatusBarAppearanceUpdate]; + } + } completion:^(BOOL finished) { + [UIView animateWithDuration:duration*(1-proportion) animations:^{ + self.navigationController.navigationBar.py_y = self.statusBarHidden ? -(navBarHeight) : statusBarHeight; + if (!self.statusBarHidden) { + [self setNeedsStatusBarAppearanceUpdate]; + } + } completion:nil]; + }]; + */ + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(duration * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ self.navBarAnimating = NO; }); @@ -194,14 +229,17 @@ - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSe - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { PYPhotoCell *cell = [PYPhotoCell cellWithCollectionView:collectionView indexPath:indexPath]; + PYPhoto *photo = [[PYPhoto alloc] init]; id image = self.selectedPhotoView.images[indexPath.item]; if ([image isKindOfClass:[UIImage class]]) { - cell.image = image; + photo.originalImage = image; } else if ([image isKindOfClass:[PYPhoto class]]) { - cell.photo = (PYPhoto*)image; + photo = (PYPhoto *)image; } else if ([image isKindOfClass:[NSString class]]) { - [cell.photoView sd_setImageWithURL:[NSURL URLWithString:image] placeholderImage:PYPlaceholderImage]; + photo.original_pic = (NSString *)image; } + // 设置图片 + cell.photo = photo; cell.photoView.isPreview = YES; return cell; diff --git a/PYPhotoBrowser/View/PYPhotosView.m b/PYPhotoBrowser/View/PYPhotosView.m index 8c22449..b7095f6 100755 --- a/PYPhotoBrowser/View/PYPhotosView.m +++ b/PYPhotoBrowser/View/PYPhotosView.m @@ -322,15 +322,20 @@ - (void)setImages:(NSMutableArray *)images photoView.images = images; if (i < imageCount) { photoView.hidden = NO; - // 设置图片 + PYPhoto *photo = [[PYPhoto alloc] init]; id image = images[i]; if ([image isKindOfClass:[UIImage class]]) { - photoView.image = image; + //photoView.image = image; + photo.originalImage = image; } else if ([image isKindOfClass:[PYPhoto class]]) { - photoView.photo = (PYPhoto *)image; + //photoView.photo = (PYPhoto *)image; + photo = (PYPhoto *)image; } else if ([image isKindOfClass:[NSString class]]) { - [photoView sd_setImageWithURL:[NSURL URLWithString:image] placeholderImage:PYPlaceholderImage]; + //[photoView sd_setImageWithURL:[NSURL URLWithString:image] placeholderImage:PYPlaceholderImage]; + photo.original_pic = (NSString *)image; } + // 设置图片 + photoView.photo = photo; }else{ photoView.hidden = YES; }