iOS + Swift
(1) Create a Swift Extension
// Centered, equilateral triangle extension UIBezierPath { convenience init(equilateralSide: CGFloat, center: CGPoint) { self.init() let altitude = CGFloat(sqrt(3.0) / 2.0 * equilateralSide) let heightToCenter = altitude / 3 moveToPoint(CGPoint(x:center.x, y:center.y - heightToCenter*2)) addLineToPoint(CGPoint(x:center.x + equilateralSide/2, y:center.y + heightToCenter)) addLineToPoint(CGPoint(x:center.x - equilateralSide/2, y:center.y + heightToCenter)) closePath() } }
(2) Override drawRect
override func drawRect(rect: CGRect) { let path = UIBezierPath( equilateralSide: self.bounds.size.width, center: CGPoint(x: self.bounds.size.width/2, y: self.bounds.size.height/2)) self.tintColor.set() path!.fill() }
source share