UITextView - 更改框架添加右边的填充

时间:2013-06-23 09:41:28

标签: ios objective-c uitextview

我有UISlider可用于调整UITextView的大小。
在调整textview的大小之前,一切看起来都不错,但在多次更改框架后,它会向右边添加一个填充。

在:
Before resizing
后:
After resizing

textview_tvInput)是顶部的那个,它没有放在任何其他视图容器中。

这是我用来更改框架的代码:

-(IBAction)widthChanged:(UISlider *)sender{
    CGRect frame = _tvInput.frame;
    frame.size.width = sender.value;
    frame.size.height = MIN(_tvInput.contentSize.height, [self tvMaxHeight]);
    if (sender.value<=_tvInput.superview.frame.size.width-20) {
        frame.origin.x = (_tvInput.superview.frame.size.width-frame.size.width)/2;
    }
    _tvInput.frame = frame;
}

那么,任何想法是什么导致了这一点,更重要的是如何解决它? 我尝试重置contentInset的{​​{1}},但这似乎不是问题所在。我也尝试手动设置textView,但也没有运气。

2 个答案:

答案 0 :(得分:1)

哦伙计..所以我设法通过改变这一行来修复它(注意从float到int的转换):

frame.size.width = (int)sender.value;

不确定为什么会导致问题,通过它的外观来看,在添加到正确的填充时保持宽度不变的小部分。

答案 1 :(得分:0)

我也被这次咬了几次。我现在使用textView.frame = CGRectIntegral(theFrame);