2011-02-04 5 views
4

Existe-t-il un moyen de redimensionner automatiquement un élément (par exemple WebView) lorsqu'un élément proche (UIImageView) est masqué?Modification automatique de la disposition d'une vue

J'ai un UIView normal avec un WebView en lui montrant le HTML, mais dans certains cas il y a besoin d'une image au-dessus de cela. J'ai donc mis l'image au-dessus de la WebView, mais j'aimerais que le webview prenne aussi l'espace de l'ImageView quand celui-ci n'est pas présent, sinon il y a une barre blanche.

Une autre option consiste à le placer sur le Webview, mais je ne pense pas qu'il y ait de toute façon à faire circuler le texte autour de l'image.

Toute personne des suggestions pour une solution bien rangé? Merci un million d'avance!

Répondre

0

Pourquoi est-ce un problème de simplement redimensionner votre WebView dans la même méthode qui affiche ou cache l'image? Par ailleurs, Cocoa Autolayout a été introduit pour OSX Lion. iOS 6 est sous NDA en ce moment, mais si vous avez un compte de développeur, allez y jeter un coup d'oeil, peut-être qu'il y a quelque chose comme ça ici.

0

Découvrez CSLinearLayoutView. Il essaie d'imiter LinearLayout et RelativeLayout d'Android, et devrait être capable de simplifier le redimensionnement dynamique/le déplacement des vues.

+0

lien intéressant –

2

Une astuce bien pratique, j'ai appris est de compter sur CGRectDivide() vous aurez --en cours pour écrire votre propre méthode layoutSubviews, mais il est pas trop difficile:

-(void)layoutSubviews 
{ 
    CGRect bounds = self.bounds ; 
    if (!self.imageView.hidden) 
    { 
     CGRect slice ; 
     CGRectDivide(bounds, & slice, & bounds, IMAGE_VIEW_HEIGHT, CGRectMinYEdge) ; 
     self.imageView.frame = slice ; 
    } 

    // bounds here contains the remaining layout space with or without the image view 
    self.webView.frame = bounds ; 
} 
Questions connexes