2016-05-01 1 views
-1

J'ai un petit problème. Comme vous pouvez le voir, j'ai créé un triangle (qui est "contexte") et l'angle du triangle (qui est "retVinkel") en utilisant des graphiques de base. Maintenant, quand je lance l'application sur Iphone 6s il semble très bien, juste au milieu où je le veux et la bonne taille. Bien sûr, la largeur, la hauteur et la position des triangles seront les mêmes parce que j'ai écrit les coordonnées à l'intérieur de l'UIView, par exemple avec l'air de l'iPad, il sera dans le coin droit et non pas au milieu.Comment mettre en œuvre la mise en page automatique à l'aide de graphiques de base dans rapide

Mais comment puis-je faire pour que le triangle reste au milieu et se dilater si la taille de l'écran augmente de sorte qu'il remplira la même quantité d'espace dans chaque appareil. Puis-je dire "déplacer 20% de pixels vers la droite et 30% de pixels vers le bas" afin que la zone du triangle soit affectée par la taille de l'écran.

import UIKit 

class TriangleDraw: UIView { 


    override func drawRect(rect: CGRect) { 
     let context = UIGraphicsGetCurrentContext() 
     CGContextSetLineWidth(context, 2.0) 
     CGContextSetStrokeColorWithColor(context, UIColor.blackColor().CGColor) 
     CGContextMoveToPoint(context, 75, 400) 
     CGContextAddLineToPoint(context, 325, 400) 
     CGContextAddLineToPoint(context, 325, 225) 
     CGContextAddLineToPoint(context, 75, 400) 

     let retVinkel = UIGraphicsGetCurrentContext() 
     CGContextSetLineWidth(retVinkel, 2.0) 
     CGContextSetStrokeColorWithColor(retVinkel, UIColor.blackColor().CGColor) 
     CGContextMoveToPoint(retVinkel, 300, 400) 
     CGContextAddLineToPoint(retVinkel, 300, 375) 
     CGContextAddLineToPoint(retVinkel, 325, 375) 

     CGContextStrokePath(context) 
     CGContextStrokePath(retVinkel) 
    } 

} 

Répondre

1

utiliser simplement un pourcentage de vos limites rect au lieu des décalages fixes, comme

CGContextMoveToPoint(context, 0.15 * bounds.width, 0.80 * bounds.height) 
CGContextAddLineToPoint(context, 0.45 * bounds.width, 0.80 * bounds.height) 
...