3

UITextView を動的にサイズ変更する必要がありますが、サイズを何度も変更した後、右マージンが驚くほど左に食い込むため、テキスト ビューに非常に狭いテキスト ストリップが表示され、多くの空白が表示されます。これは、UITextView と UISlider だけの簡単なセットアップで再現できます。この動作を生成する簡単なサンプル セットアップは、値の範囲が 0 ~ 200 の UISlider、幅が 320 の UITextView、および次のコードです。

- (IBAction)sliderValueChanged:(UISlider *)slider {
    textView.frame = CGRectMake(0, 0, 320 - slider.value, 300);
}

私が試したいくつかのことは、autoResizingMask、contentMode、contentOffset、および sizeToFit をいじっていますが、どれも機能しません。この奇妙な動作を回避するにはどうすればよいですか、それともバグですか?

4

1 に答える 1

4

サブクラスUITextView化してオーバーライドlayoutSubViewsし、元のフレームサイズに設定しframeCGRectZeroから元のフレームサイズに戻します。エレガントではありませんが、機能します。

-(void) layoutSubviews
{
    CGRect rect = [self frame];
    [self setFrame:CGRectZero];
    [self setFrame:rect];
}
于 2012-08-25T19:15:53.590 に答える