2016-05-01 4 views
-1

implementieren, habe ich ein kleines Problem. Wie Sie sehen können, habe ich ein Dreieck (das ist "Kontext") und den Winkel des Dreiecks (das ist "retVinkel") mit Core-Grafiken erstellt. Jetzt, wenn ich die App auf Iphone 6s laufen lasse, sieht es gut aus, genau in der Mitte, wo ich es will und die richtige Größe. Natürlich sind die Dreiecke Breite, Höhe und Position gleich, weil ich die Koordinaten innerhalb der UIView geschrieben habe, zum Beispiel mit der iPad Air, die sich in der rechten Ecke befindet und nicht in der Mitte.Wie Auto-Layout mit Core-Grafiken in Swift

Aber wie kann ich tun, dass das Dreieck in der Mitte bleibt und erweitert, wenn die Bildschirmgröße erweitert wird, so dass es die gleiche Menge an Speicherplatz in jedem Gerät füllt. Kann ich sagen "Bewegen Sie 20% Pixel nach rechts und 30% Pixel nach unten", so wird der Bereich des Dreiecks von der Bildschirmgröße beeinflusst.

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) 
    } 

} 

Antwort

1

einfach einen Prozentsatz Ihrer Grenzen verwenden rect anstelle von festen Offsets, wie

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