Skip to content

Instantly share code, notes, and snippets.

@jsbain
Created March 28, 2017 07:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jsbain/b5a56a632996041888be9df56a5d27e3 to your computer and use it in GitHub Desktop.
Save jsbain/b5a56a632996041888be9df56a5d27e3 to your computer and use it in GitHub Desktop.
fontpath.py
from objc_util import *
import ui
font=ObjCClass('UIFont').systemFontOfSize_weight_(64,1)
s='Hello world'
p=ui.Path()
w=0
for x in s:
glyph= font.glyphWithName_(x)
if glyph:
letter = ObjCInstance(c.CTFontCreatePathForGlyph(font, glyph, None))
letterBezier=UIBezierPath.bezierPathWithCGPath_(letter)
#transform it so we shift and flip y
letterBezier.applyTransform_(CGAffineTransform(1,0,0,-1,w,font.capHeight()))
ObjCInstance(p).appendBezierPath_(letterBezier)
w+=font.advancementForGlyph(glyph).width
class myview(ui.View):
def __init__(self):
self.frame=(0,0,500,500)
self.bg_color='white'
def draw(self):
ui.set_color('red')
p.line_width=1
p.stroke()
myview().present('sheet')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment