2016-05-01 7 views
-1

У меня есть небольшая проблема. Как вы видите, я создал треугольник (который является «контекстом») и угол треугольника (который является «retVinkel») с использованием графики Core. Теперь, когда я запускаю приложение на Iphone 6s, он выглядит просто отлично, прямо посередине, где я хочу его и нужного размера. Конечно, ширина, высота и положение треугольников будут одинаковыми, потому что я написал координаты внутри UIView, например, с iPad-iPad, который будет находиться в правом углу, а не в середине.Как реализовать автоматическую компоновку с использованием базовой графики в swift

Но как я могу сделать так, чтобы треугольник оставался посередине и расширялся, если размер экрана расширялся, чтобы он заполнил такое же пространство на каждом устройстве. Могу ли я сказать, что «перемещайте 20% пикселей вправо и 30% пикселей вниз», поэтому на область треугольника будет влиять размер экрана.

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

} 

ответ

1

Просто используйте процент ваших границ Прямоугольник вместо фиксированных смещений, как

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