QuartzDemo/QuartzRectView.swift
/* |
Copyright (C) 2017 Apple Inc. All Rights Reserved. |
See LICENSE.txt for this sample’s licensing information |
Abstract: |
Demonstrates using Quartz to stroke fill rectangles |
*/ |
import UIKit |
class QuartzRectView: QuartzView { |
override func drawInContext(_ context: CGContext) { |
centerDrawing(inContext: context, drawingExtent: CGRect(x:0.0, y:0.0, width:280.0, height:280.0)) |
// Drawing lines with a white stroke color |
context.setStrokeColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0) |
// And drawing with a blue fill color |
context.setFillColor(red: 0.0, green: 0.0, blue: 1.0, alpha: 1.0) |
// Draw them with a 2.0 stroke width so they are a bit more visible. |
context.setLineWidth(2.0) |
// Add Rect to the current path, then stroke it |
context.addRect(CGRect(x: 30.0, y: 30.0, width: 60.0, height: 60.0)) |
context.strokePath() |
// Stroke Rect convenience that is equivalent to above |
context.stroke(CGRect(x: 30.0, y: 120.0, width: 60.0, height: 60.0)) |
// Stroke rect convenience equivalent to the above with built-in call to CGContextSetLineWidth(). |
context.stroke(CGRect(x: 30.0, y: 210.0, width: 60.0, height: 60.0), width: 10.0) |
// Demonstate the stroke is on both sides of the path. |
context.savingGState { |
context.setStrokeColor(red: 1.0, green: 0.0, blue: 0.0, alpha: 1.0) |
context.stroke(CGRect(x: 30.0, y: 210.0, width: 60.0, height: 60.0), width: 2.0) |
} |
// Bulk call to add multiple rects to the current path. |
let rects = [ |
CGRect(x: 120.0, y: 30.0, width: 60.0, height: 60.0), |
CGRect(x: 120.0, y: 120.0, width: 60.0, height: 60.0), |
CGRect(x: 120.0, y: 210.0, width: 60.0, height: 60.0) |
] |
// Equivalent to: |
// for i in 1..<rects.count { |
// context.addRect(rects[i]) |
// } |
context.addRects(rects) |
context.strokePath() |
// Create filled rectangles via two different paths. |
// Add/Fill path |
context.addRect(CGRect(x: 210.0, y: 30.0, width: 60.0, height: 60.0)) |
context.fillPath() |
// Fill convienience. |
context.fill(CGRect(x: 210.0, y: 120.0, width: 60.0, height: 60.0)) |
} |
} |
Copyright © 2017 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2017-09-19