サブクラスのUIlablel
のテキストからイメージを作成しています。 UIlablel
のテキストはawakeFromNib
に設定されており、アプリが起動するたびに異なります。イメージがUIlablel
のテキスト全体をキャプチャする唯一の場所は、私が信じるフレームサイズのためにlayoutSubviews
- です。下のコードでは、ラベルの親ビューにあるbounds
を使用しています。問題は、layoutSubviews
が複数回呼び出されるため、このイメージが何度も作成される可能性があることです。私はdidMoveToWindow
と他の場所で画像をキャプチャしようとしましたが、UIlablel
のテキストの一部だけがキャプチャされます。これはイメージを作るためのコードです:どのような考えですか?テキストからイメージを作成する(不適切なサイズ)
func createImage(withText text: NSAttributedString, inParent parent: UIView) -> UIImage {
UIGraphicsBeginImageContextWithOptions(frame.size, false, 0)
text.draw(in: parent.bounds)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image!
}
parent.boundsとframeのサイズと出所を確認できますか? –
あなたのUILabelからテキストを一度保存してから、layoutSubviewを呼び出すたびにUIImageを再描画します。 –