2016-04-11 7 views
0

nach dem Zoomen ich programmatisch eine UIScrollView mit dem folgenden Code erstellt haben:Kann nicht UIScrollView schwenken

.h:

@interface MainController : UIViewController <UIScrollViewDelegate> 

@property (nonatomic, retain) UIScrollView *mainScrollView; 
@property (nonatomic, retain) UIView *mainView; 

.m:

- (void) initVariables 
{ 
    // Setters 

    screenRect = [[UIScreen mainScreen] bounds]; 
    screenWidth = screenRect.size.width; 
    screenHeight = screenRect.size.height; 

    // Alloc-init methods 
    mainScrollView = [[UIScrollView alloc] init]; 
    mainView = [[UIView alloc] init]; 
} 

- (void) setUpScrollView 
{ 
    mainScrollView.frame = CGRectMake(0.0f, 0.0f, screenWidth, screenHeight); 
    mainScrollView.contentSize = CGSizeMake(screenWidth*2, screenHeight*2); 
    mainScrollView.minimumZoomScale = 1.0; 
    mainScrollView.maximumZoomScale = 4.0; 
    mainScrollView.backgroundColor = [UIColor blueColor]; 
    mainScrollView.scrollEnabled = YES; 
    mainScrollView.delegate = self; 

    mainView.frame = CGRectMake((screenWidth/2) - 25.0f, (screenHeight/2) - 25.0f, 50.0f, 50.0f); 

    UIImageView *testImageView = [[UIImageView alloc] init]; 
    testImageView.backgroundColor = [UIColor redColor]; 
    testImageView.frame = CGRectMake(0.0f, 0.0f, 50.0f, 50.0f); 

    // Add subviews 

    [self.view addSubview:mainScrollView]; 
    [mainScrollView addSubview:mainView]; 
    [mainView addSubview:testImageView]; 

} 

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{ 
    return mainView; 
} 

Der Zoom funktioniert jetzt gut. Allerdings kann ich nur schwenken, wenn der UIScrollView minimal ist. Zu allen anderen Zeiten, wenn ich zoome, wenn ich meine Finger loslasse, verschiebt sich die UIView leicht außermittig, obwohl ich zentriert war, als ich zoomte, und ich kann das UIScrollView nicht mehr schwenken.

Auch nach dem Einzoomen kann ich immer noch nicht schwenken, wenn ich wieder auf minimalen Zoom zoome.

TL; DR - Mit anderen Worten, UIScrollView schwenkt nur vor der Verwendung der Pinch-Zoom-Funktion, nach der es bricht.

Wie kann ich dies verhindern und zulassen, dass der Pan des UIScrollView immer aktiviert ist? Alle Hilfe wird geschätzt.

Antwort

1

Versuchen Sie, eine weitere Ansicht in scrollView mit derselben Bildschirmgröße hinzuzufügen und dann mainView und imageView hinzuzufügen. Es kann Ihr Problem lösen. :)

+0

Nun verdammt, nicht sicher, wie aber das funktionierte! Vielen Dank Kumpel :) –

+0

Der Grund ist, Scrollview Scroll je nach der Größe des Inhalts. – Lion