UITextView フレーム (この場合は UISlider を使用) を変更しようとすると、フレーム以外の (小さい) 領域にテキストが描画されます (複数回サイズ変更)。面白いことに、フレームを大きくしようとして十分な速さでスライドすると、テキストはかなり正しい領域に描画されます。誰かが理由を説明できますか?レイアウト、自動サイズ変更、コンテンツのサイズと境界の設定を試みましたが、何も機能しません。
- (void)viewDidLoad
{
[super viewDidLoad];
_textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
_textView.backgroundColor = [UIColor greenColor];
_textView.text = @"some useless text which will be drawn bad";
[self.view addSubview:_textView];
UISlider *slide = [[UISlider alloc] initWithFrame:CGRectMake(10, 130, 100, 20)];
[slide setValue:0.0];
[slide addTarget:self action:@selector(changedValue:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:slide];
}
- (void)changedValue:(UISlider *)slider
{
CGRect textViewFrame = _textView.frame;
textViewFrame.size.width = [slider value] * 200;
_textView.frame = textViewFrame;
}
リサイズ前
リサイズ後