2014-09-12 1 views

Répondre

3

Si vous ne me dérange pas, y compris le cadre AVFoundation dans votre projet, vous pouvez utiliser: AVMakeRectWithAspectRatioInsideRect(CGSize aspectRatio, CGRect boundingRect);

Ses états de documentation:

Retourne une CGRect échelle qui maintient le rapport d'aspect spécifié par une CGSize dans un CGRect limitatif.

Il peut être utilisé comme:

subview.frame = AVMakeRectWithAspectRatioInsideRect(subview.bounds.size, superview.bounds); 

Paramètres:

aspectRatio: Le rapport largeur et la hauteur (rapport d'aspect) que vous souhaitez conserver.

boundingRect: Le rectangle de délimitation dans lequel vous souhaitez insérer.

+0

Quels sont les inconvénients de l'inclusion du framework AVFoundation? Certains problèmes de performance ou .. –

+0

Non, ne devrait avoir aucun inconvénient vraiment @NerminSehic – Wain

0
float ratio = subView.bounds.size.height/subView.bounds.size.width; 

[subView setFrame:CGRectMake(0,0,superView.bounds.size.width,superView.bounds.size.width*ratio)]; 
[subView setCenter:CGPointMake(superView.bounds.size.width/2,superView.bounds.size.height/2)]; 
+0

J'ai aimé la façon dont vous avez centré la vue. Mais la façon dont vous définissez le cadre n'est pas dynamique, bien que cela fonctionne pour l'exemple. –

Questions connexes