我有一个小问题。正如你所看到的,我使用核心图形创建了一个三角形(即"上下文")和三角形的角度(即"retVinkel")。现在,当我在Iphone6s上运行这个应用程序时,它看起来很好,就在我想要的中间,大小合适。当然,三角形的宽度、高度和位置将是相同的,因为我已经在UIView中写入了坐标,例如,对于iPad air,它将位于右角,而不是在中间。
但是,如果屏幕尺寸扩大,那么它将在每个设备中占据相同的空间,我该怎么做才能使三角形保持在中间并扩大。我可以说"向右移动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)
}
}
只需使用边界rect的百分比,而不是固定偏移,如
CGContextMoveToPoint(context, 0.15 * bounds.width, 0.80 * bounds.height)
CGContextAddLineToPoint(context, 0.45 * bounds.width, 0.80 * bounds.height)
...