-
-
Save jpweber/6c637c79d4f69d571c6f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Source for the Accidental Tech Podcast (ATP) T-Shirt: | |
// http://www.marco.org/2014/04/29/atp-shirts | |
// | |
// By Troy Gaul, June 2, 2014. | |
// | |
// Based on Obj-C veresion by Marco Arment, April 28, 2014. MIT license. | |
// https://gist.github.com/marcoarment/2542cd28cb5df0aa97d8 | |
import UIKit | |
class ATPLogoView: UIView { | |
override func drawRect(rectIgnored: CGRect) | |
{ | |
let fontName = "MyriadPro-Semibold" | |
let title = NSLocalizedString("Accidental Tech Podcast", comment: "") | |
let initials = NSLocalizedString("ATP", comment: "") as NSString | |
let rect = CGRect(origin: CGPointZero, size: self.bounds.size) | |
let w = rect.size.width | |
let offsetY = w * -0.07 | |
var ringRect = CGRectInset(rect, w * 0.08, w * 0.08) | |
ringRect.origin.y += offsetY | |
let ring = UIBezierPath(ovalInRect: ringRect) | |
ring.lineWidth = ceil(w * 0.012) | |
UIColor(white: 0.3, alpha: 1.0).setStroke() | |
ring.stroke() | |
var innerRingRect = CGRectInset(rect, w * 0.21, w * 0.21) | |
innerRingRect.origin.y += offsetY | |
let inner = UIBezierPath(ovalInRect: innerRingRect) | |
inner.lineWidth = ceil(w * 0.007) | |
UIColor(white: 0.7, alpha: 1.0).setStroke() | |
inner.stroke() | |
let pStyle = NSMutableParagraphStyle() | |
pStyle.alignment = .Center | |
let titleAttributes = [ | |
NSFontAttributeName: UIFont(name: fontName, size: w * 0.068), | |
NSParagraphStyleAttributeName: pStyle, | |
NSForegroundColorAttributeName: UIColor.whiteColor(), | |
NSKernAttributeName: w * 0.0037 | |
] | |
let t = title.uppercaseString as NSString | |
let titleRect = CGRect(x: 0, y: w * 0.91, width: w, height: w * 0.09) | |
let o = NSStringDrawingOptions.UsesLineFragmentOrigin | |
t.drawWithRect(titleRect, options: o, attributes: titleAttributes, context: nil) | |
let bs = CGSize(width: w * 0.44, height: w * 0.19) | |
var bOrigin = CGPoint(x: (w - bs.width) / 2.0, y: (w - bs.height) / 2.0) | |
bOrigin.y += offsetY | |
let b = CGRect(origin: bOrigin, size: bs) | |
let cX = CGRectGetMidX(b), cY = CGRectGetMidY(b) | |
var transform = CGAffineTransformMakeTranslation(cX, cY) | |
transform = CGAffineTransformRotate(transform, 0.5236) | |
transform = CGAffineTransformTranslate(transform, -cX, -cY) | |
CGContextConcatCTM(UIGraphicsGetCurrentContext(), transform) | |
UIColor(red: 0.12, green: 0.25, blue: 0.4, alpha: 1.0).setFill() | |
UIBezierPath(roundedRect: b, cornerRadius: bs.height * 0.15).fill() | |
let a = titleAttributes.mutableCopy() as NSMutableDictionary | |
a[NSFontAttributeName] = UIFont(name: fontName, size: bs.height * 0.84) | |
a[NSKernAttributeName] = bs.height * 0.04 | |
let r = CGRectInset(b, 0, 0.17 * bs.height) | |
initials.drawWithRect(r, options: o, attributes: a, context: nil) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment