2016-04-15 1 views
-1

Est-il possible de déclencher le redimensionnement automatique pour différents périphériques sans utiliser la mise en forme automatique et les classes de taille? J'utilise des objets prédéfinis (UIButtons, textfield ... etc) mais la plupart du temps j'utilise des objets personnalisés dynamiques et j'ai des problèmes avec le redimensionnement sur différents périphériques. Je suis à la recherche de l'ancienne méthode lorsque nous n'avions pas besoin d'utiliser les contraintes et la mise en page automatique + les classes de taille.Comment redimensionner automatiquement le coco xcode?

Une idée? Merci!

Répondre

0

Si vous souhaitez effectuer la logique de modification de taille dans votre UIViewController, ajouter un Ivar pour stocker un CGSize et initialisez à CGSizeZero, puis passer outre viewDidLayoutSubviews et comparer la taille de la vue à votre variable stockée. Si elles sont différentes, stockez la nouvelle taille et mettez à jour les images de vos vues, si elles sont identiques, return.

Si vous souhaitez avoir votre logique de redimensionnement dans un UIView, faites de même mais remplacez layoutSubviews à la place. Ne pas oublier d'appeler super.

+0

J'ai un système sur lvl view en vue ... mais je l'ai appelé viewDidLoad ... Je vais essayer votre idée et celle ci-dessus et je vais vous informer qui fonctionne le mieux ... –

0

Vous pouvez utiliser AutoResize masques qui sont l'ancienne version scolaire des classes autolayout et taille

UIView *myView = [[UIView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, self.view.bounds.size.width, 100.0f)]; 
myView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 

Il y a certains d'entre eux pour vous aider à obtenir les résultats souhaités

typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) { 
    UIViewAutoresizingNone     = 0, 
    UIViewAutoresizingFlexibleLeftMargin = 1 << 0, 
    UIViewAutoresizingFlexibleWidth  = 1 << 1, 
    UIViewAutoresizingFlexibleRightMargin = 1 << 2, 
    UIViewAutoresizingFlexibleTopMargin = 1 << 3, 
    UIViewAutoresizingFlexibleHeight  = 1 << 4, 
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5 
}; 

Personnellement une fois que vous Je me sens confiant que je chercherais à faire de la tête par programmation en créant un autolayout mais c'est un début.