我使用制作了一个用于缩放图像的演示UIScrollView
。我的ViewController
只包含一张图片。问题是图像无法放大iO7
(我已经测试过iPhone4S-iOS7
),但是在iOS8
/中可以完美工作iOS9
。
关于如何解决它的任何想法?
这是我的代码
#import "ViewController.h"
@interface ViewController ()<UIScrollViewDelegate>
@property (weak, nonatomic) IBOutlet UIScrollView *scrollview;
@property (weak, nonatomic) IBOutlet UIView *contentview;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
float minimumScale = [_contentview frame].size.width /[_scrollview frame].size.width;
_scrollview.maximumZoomScale = 5; //Change as per you need
_scrollview.minimumZoomScale = minimumScale; //Change as you need
_scrollview.zoomScale = minimumScale;
_scrollview.delegate =self;
_scrollview.clipsToBounds = YES;
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return self.contentview;
}
@end
这是布局结构
Screen.png约束ContentView约束ScrollView约束
这是我的演示项目
https://drive.google.com/file/d/0B679aXO0SBmMeUVHTUdOcmxJSXM/view
高度和宽度constraints
是iOS 7中的原因。一种解决方法是删除constraints
iOS 7的高度和宽度,然后minimumScale
手动计算。在IOS 8及更高版本中,请勿进行任何更改。
- (void)viewDidLoad {
[super viewDidLoad];
float minimumScale = 1;
if (floor(NSFoundationVersionNumber) < NSFoundationVersionNumber_iOS_8_0) {
[self.view removeConstraints:self.heightWidthConstraints];
minimumScale = self.scrollview.frame.size.width / self.imageView.image.size.width;
}
_scrollview.maximumZoomScale = 5; //Change as per you need
_scrollview.minimumZoomScale = minimumScale; //Change as you need
//_scrollview.zoomScale = minimumScale;
_scrollview.delegate = self;
//_scrollview.clipsToBounds = YES;
[self.scrollview setZoomScale:minimumScale animated:YES];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句