2010-03-19 17 views
1

J'ai une sous-classe iPad UIView (que nous appellerons LargerUIView) avec laquelle je fais un tas de dessin via drawRect: une fois demandé. Tout semble fonctionner et ressemble à ce que je veux. Je suis sur le point maintenant d'essayer de faire défiler le travail (juste à l'horizontale pour commencer), mais quand j'essaie de faire défiler, ce qui apparaît ci-dessous est noir (c'est-à-dire, n'a jamais été dessiné). Cela ne me surprend pas car il a probablement été coupé. À la recherche de suggestions Voici ce que je fais jusqu'à présent:Comment éviter que l'UIView intégré dans un UIScrollview ne soit tronqué?

MyAppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    CGRect scrollRect = CGRectMake(0, 0, 768, 1024); 
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:scrollRect]; 

    LargerUIView *view = (LargerUIView *)[viewController view]; 
    [scrollView addSubview:view]; 

    [scrollView setContentSize:CGSizeMake(768, pageHeight)]; 
    [scrollView setContentMode:UIViewContentModeRedraw]; 
    [scrollView setClipsToBounds:YES]; 

    [window addSubview:scrollView]; 
    [scrollView release]; 

    // Without this next line, the "frontmost" (ie, most recently added subview) 
    // is the target uiview - which is not equipped to handle scrolling/UIEvents 
    [window sendSubviewToBack:view]; 

    // Show it all. 
    [window makeKeyAndVisible]; 

    return YES; 
} 

Toutes les suggestions? J'ai essayé de changer "setClipsToBounds" à NO aussi bien.

Répondre

0

Soupir. Quel étourdi. LargerUIView a été configuré pour être plus petit dans InterfaceBuilder. Vous avez oublié d'ajouter une ligne comme celle-ci:

[view setBounds:CGRectMake(0, 0, 768, pageHeight)]; 

Oups.

Questions connexes