draw
のオーバーライドされたCALayer
メソッドで文字列を描画しようとしています(iOS用にプログラミングしています)。
override func draw(in ctx: CGContext) {
let font = UIFont.systemFont(ofSize: 30)
let string = NSAttributedString(string: "23", attributes: [NSAttributedStringKey.font: font])
string.draw(at: CGPoint(x: 200, y: 200))
}
ただし、これは何も描画していません(少なくとも何も表示されていません)。塗りと線の色を変更しても違いはありません。
線を引くと表示されるので、関数が呼び出されています。 CATextLayer
があることは知っていますが、文字列を直接描画する必要があります。 Swift 4時代のCGContext
に文字列をどのように描くことになっていますか?ネット検索の量は答えをもたらしませんでした。
私はあなたが他のすべての設定を知っていると思います。ここで重要なのは、CGContextを現在のものとして作成していないことです。問題を解決するには、2行のコードを追加するだけです。あなたが答えを得ることを願っています。
override func draw(in ctx: CGContext) {
UIGraphicsPushContext(ctx)
let font = UIFont.systemFont(ofSize: 30)
let string = NSAttributedString(string: "23", attributes: [NSAttributedString.Key.font: font])
string.draw(at: CGPoint(x: 200, y: 200))
UIGraphicsPopContext()
}