0

我有一个UISlider可以用来调整UITextView.
在调整大小之前textview,一切看起来都还不错,但是在多次更改其框架后,它在右侧添加了一个填充。

之前:
调整大小之前
之后:
调整大小后

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;
}

那么,有什么想法会导致这种情况,更重要的是如何解决?
我尝试重置 的contentInsettextView但这似乎不是问题。我也尝试过contentSize手动设置,但也没有运气。

4

2 回答 2

1

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

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

不知道为什么这会导致问题,从外观上看,改变宽度的小数部分不断添加到正确的填充中。

于 2013-06-23T10:08:28.897 回答
0

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

于 2013-08-07T07:00:54.743 回答