3

我需要动态调整 UITextView 的大小,但在多次调整大小后,右边距会惊人地向左延伸,因此在文本视图中显示了一条非常窄的文本,其中有很多空白。这可以通过仅使用 UITextView 和 UISlider 的简单设置来重现。产生此行为的简单示例设置是 UISlider,其值范围为 0-200,宽度为 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 回答