我需要一个动态调整大小的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,但它们都不起作用。如何避免这种奇怪的行为,或者它是一个错误?
答案 0 :(得分:4)
子类UITextView
并覆盖layoutSubViews
以将frame
设置为CGRectZero
,然后返回原始帧大小。它不优雅,但它有效。
-(void) layoutSubviews
{
CGRect rect = [self frame];
[self setFrame:CGRectZero];
[self setFrame:rect];
}