このソリューションは少しクレイジーですが、それは論理的な意味がある、と偉大な視覚的な結果を持っています。私はNSLayoutManager
と2つの列にテキストをレイアウトしているNSTextContainer
を使って作業しています。私は複数のテキストコンテナを使用しています(と私はUITextView
複数たくわからない)ので、私はMyDrawingView: UIView
のdraw(rect: CGRect)
メソッドをオーバーライドしています。契約ブレーカであることが十分に大きな -
問題がself.contentMode = .redraw
を使用すると、まだ回転にストレッチいくつかのマイナーにつながるということです。
contentMode = .left
、またはcontentMode = .scaleAspectFit
という設定がピクセル完全回転の点で私の望むものに近いことに気付きました。しかし、明らかに、私は必要なドローコールを得ていなかった。
だから - 私は、layoutSubviews()
をオーバーライドsuper.layoutSubviews()
と呼ばれる、.scaleAspectFit
へcontentMode
を切り替え、それをスイッチバック。 :P
override func layoutSubviews() {
self.contentMode = .scaleAspectFit
super.layoutSubviews()
self.contentMode = .redraw
}
これは完璧です。
私はそれを正確にやってみました。無効。 Nuthin。サブクラスにおいて IがのsetTransformをオーバーライド:方法thusly: - (ボイド)のsetTransform:(CGAffineTransform)newValueに{ [スーパーのsetTransform:newValueに]。 [self setNeedsDisplay]; } – dugla
はどうやら、私は今futzingコードのビットsetNeedsDisplayが正常に発射しました。 – dugla