From 2c559c49658ad5295a60b3e79d3e30d6080fd272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E5=87=A1=E6=80=A1?= Date: Fri, 12 May 2017 16:58:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9F=90=E4=BA=9B=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=8B,=E5=9C=A8=E5=8F=8C=E5=87=BB=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=90=8E,=E5=9B=BE=E7=89=87=E8=A2=AB=E6=94=BE=E5=A4=A7,?= =?UTF-8?q?=E4=BD=86=E6=98=AF=E5=9B=BE=E7=89=87=E5=AE=BD=E5=BA=A6=E4=B8=BA?= =?UTF-8?q?=E5=B1=8F=E5=B9=95=E5=AE=BD=E5=BA=A6,=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E6=AF=94=E4=BE=8B=E5=A4=B1=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 0 -> 11187 bytes .../xcschemes/SDPhotoBrowser.xcscheme | 101 ++++++++++++++++++ .../xcschemes/xcschememanagement.plist | 27 +++++ .../SDPhotoBrowser/SDBrowserImageView.m | 6 +- 4 files changed, 132 insertions(+), 2 deletions(-) create mode 100644 SDPhotoBrowser.xcodeproj/project.xcworkspace/xcuserdata/aaron.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 SDPhotoBrowser.xcodeproj/xcuserdata/aaron.xcuserdatad/xcschemes/SDPhotoBrowser.xcscheme create mode 100644 SDPhotoBrowser.xcodeproj/xcuserdata/aaron.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/SDPhotoBrowser.xcodeproj/project.xcworkspace/xcuserdata/aaron.xcuserdatad/UserInterfaceState.xcuserstate b/SDPhotoBrowser.xcodeproj/project.xcworkspace/xcuserdata/aaron.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..1573302816ab5f10b3988abb91f49bef9be38150 GIT binary patch literal 11187 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 ZS;r;Eza0M+5EUW9Cw(mpVIjwl{|8Dp+oJ#g literal 0 HcmV?d00001 diff --git a/SDPhotoBrowser.xcodeproj/xcuserdata/aaron.xcuserdatad/xcschemes/SDPhotoBrowser.xcscheme b/SDPhotoBrowser.xcodeproj/xcuserdata/aaron.xcuserdatad/xcschemes/SDPhotoBrowser.xcscheme new file mode 100644 index 0000000..157f3cb --- /dev/null +++ b/SDPhotoBrowser.xcodeproj/xcuserdata/aaron.xcuserdatad/xcschemes/SDPhotoBrowser.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SDPhotoBrowser.xcodeproj/xcuserdata/aaron.xcuserdatad/xcschemes/xcschememanagement.plist b/SDPhotoBrowser.xcodeproj/xcuserdata/aaron.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..31b4b30 --- /dev/null +++ b/SDPhotoBrowser.xcodeproj/xcuserdata/aaron.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,27 @@ + + + + + SchemeUserState + + SDPhotoBrowser.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 9973FAAD1A824A1E0089A512 + + primary + + + 9973FACE1A824A1F0089A512 + + primary + + + + + diff --git a/SDPhotoBrowser/SDPhotoBrowser/SDBrowserImageView.m b/SDPhotoBrowser/SDPhotoBrowser/SDBrowserImageView.m index 03d6567..9c57c48 100755 --- a/SDPhotoBrowser/SDPhotoBrowser/SDBrowserImageView.m +++ b/SDPhotoBrowser/SDPhotoBrowser/SDBrowserImageView.m @@ -192,12 +192,14 @@ - (void)prepareForImageViewScaling UIImageView *zoomingImageView = [[UIImageView alloc] initWithImage:self.image]; CGSize imageSize = zoomingImageView.image.size; CGFloat imageViewH = self.bounds.size.height; + CGFloat imageViewW = self.bounds.size.width; //1. 获取图片宽度 if (imageSize.width > 0) { imageViewH = self.bounds.size.width * (imageSize.height / imageSize.width); + imageViewW = imageViewH / imageSize.height * imageSize.width; } - zoomingImageView.bounds = CGRectMake(0, 0, self.bounds.size.width, imageViewH); + zoomingImageView.bounds = CGRectMake(0, 0, imageViewW, imageViewH); //2. 设置图片的宽度,而不是显示在 imageView 中. zoomingImageView.center = _zoomingScroolView.center; - zoomingImageView.contentMode = UIViewContentModeScaleAspectFit; + zoomingImageView.contentMode = UIViewContentModeScaleToFill; //3. 修复缩放后会比例失调的问题 _zoomingImageView = zoomingImageView; [_zoomingScroolView addSubview:zoomingImageView]; [self addSubview:_zoomingScroolView]; From 9e5e1f0ec6cf599c40e9754e2617635ce986cffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E5=87=A1=E6=80=A1?= Date: Thu, 18 May 2017 13:38:59 +0800 Subject: [PATCH 2/2] =?UTF-8?q?BUG=20:=206436=E3=80=90iOS=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=9B=B4=E6=96=B0=E3=80=91PC=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E5=88=97=E8=A1=A8=E4=B8=BA=E7=A9=BA=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=E5=90=AF=E5=8A=A8=E5=BA=94=E7=94=A8=EF=BC=8C?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E7=A7=BB=E5=8A=A8=E5=BA=94=E7=94=A8=E7=89=88?= =?UTF-8?q?=E6=9C=AC=EF=BC=8C=E6=8F=90=E7=A4=BA=E2=80=9C=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E2=80=9D=20=E5=8E=9F=E5=9B=A0:?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=A4=84=E7=90=86=E5=90=8E=E7=AB=AF=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E6=8A=A5=E9=94=99=20=E8=A7=A3=E5=86=B3:=E9=92=88?= =?UTF-8?q?=E5=AF=B9=E5=8D=95=E4=B8=AA=E6=8E=A5=E5=8F=A3=E5=8D=95=E4=B8=AA?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=A0=81=E4=B8=8D=E5=81=9A=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 11187 -> 11903 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/SDPhotoBrowser.xcodeproj/project.xcworkspace/xcuserdata/aaron.xcuserdatad/UserInterfaceState.xcuserstate b/SDPhotoBrowser.xcodeproj/project.xcworkspace/xcuserdata/aaron.xcuserdatad/UserInterfaceState.xcuserstate index 1573302816ab5f10b3988abb91f49bef9be38150..9c5e1906a066a3271d874fc1a39df80ecc4575bb 100644 GIT binary patch delta 6955 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