2016-02-18 19 views
7

Ho creato una demo per l'immagine zoom utilizzando UIScrollView. Il mio ViewController contiene solo un'immagine. Il problema è che l'immagine non può ingrandire iO7 (ho provato su iPhone4S-iOS7) ma funziona perfettamente in iOS8/iOS9.
Qualche idea su come risolverlo?Lo zoom su iOS 7 non funziona in ScrollView con AutoLayout ma funziona in iOS8/9

Ecco il mio codice

#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 

Ecco la struttura del layout

enter image description here

screen.png vincolo enter image description here contentView vincolo
enter image description here
ScrollView vincolo enter image description here

Ecco il mio progetto dimostrativo

https://drive.google.com/file/d/0B679aXO0SBmMeUVHTUdOcmxJSXM/view

+0

cercare di restituire un'immagine in viewForZoomingInScrollView – Jageen

+0

ho cercato di restituire un'immagine ma ancora non funziona –

+0

bene è interessante Ora, si può condividere questo progetto demo in modo che non ho potuto devi crearne uno nuovo. – Jageen

risposta

1

L'altezza e la larghezza constraints causano questo problema in iOS 7. Una soluzione alternativa sarebbe quella di rimuovere quelli constraints per iOS 7 e calcolare minimumScale manualmente. in IOS 8 e versioni successive, non modificare nulla.

enter image description here

- (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]; 
} 
0

enter image description here
la larghezza e l'altezza Rimuovere contraint di contentView. Aggiungi il vincolo CentralHorizontal di contentView con scrollView

Fammi sapere se funziona.

+0

ho recentemente controllato il vostro codice, aggiornato come dato passaggio e testato e funziona bene in ios 7 8 9 –

+0

scusa per il ritardo in ritardo. Provo il tuo suggerimento ma non funziona ancora. puoi condividere il tuo codice per me –

+0

controllare l'immagine aggiornata nella risposta. fammi sapere se lo prendi –