に回転変換を適用し、UITextView
内側をクリックして編集を開始すると、コンテンツのサイズが自動的に拡大されているように見えます。コンテンツ ビューの新しい幅は、回転したビューの境界ボックスの幅です。たとえば、幅 500、高さ 400 のテキスト ボックスを 30 度回転させた場合、新しいコンテンツの幅は次のようになります。
(500 * cos(30)) + (400 * sin(30)) = 633
またはグラフィカルに:
興味深いことに、既にテキスト ビューを編集してから変換を適用すると、コンテンツ サイズに変更が加えられていないように見えます。そのため、テキスト編集の開始前後で、テキスト ビューはそのframe
プロパティを参照し、フレーム幅に基づいてコンテンツ サイズを調整するようです。これに対する解決策は、bounds
代わりにプロパティを使用するように指示することだと思いますが、テキストビューがコンテンツサイズを変更することを決定している場所が正確にわからないため、どこでこれを行うべきかわかりません。
私はグーグルで検索しましたが、変換された UITextViews を使用するための参照が見つからないようです。これについて何か考えがある人はいますか?
EDIT(テストプロジェクトからのボタンアクション):
- (IBAction)rotateButtonTapped:(id)sender {
if (CGAffineTransformIsIdentity(self.textView.transform)) {
self.textView.transform = CGAffineTransformMakeRotation(30.0 * M_PI / 180.0);
}
else {
self.textView.transform = CGAffineTransformIdentity;
}
NSLog(@"contentsize: %.0f, %.0f", textView.contentSize.width, textView.contentSize.height);
}