动态调整大小UITextView的多余边距行为

时间:2012-07-03 05:48:02

标签: iphone ios cocoa-touch uikit uitextview

我需要一个动态调整大小的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,但它们都不起作用。如何避免这种奇怪的行为,或者它是一个错误?

1 个答案:

答案 0 :(得分:4)

子类UITextView并覆盖layoutSubViews以将frame设置为CGRectZero,然后返回原始帧大小。它不优雅,但它有效。

-(void) layoutSubviews
{
    CGRect rect = [self frame];
    [self setFrame:CGRectZero];
    [self setFrame:rect];
}