iOS 7缩放在带有AutoLayout的ScrollView中不起作用,但在iOS8 / 9中起作用

潘文林

我使用制作了一个用于缩放图像的演示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中的原因。一种解决方法是删除constraintsiOS 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章