我有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;
}
那么,任何想法是什么导致了这一点,更重要的是如何解决它?
我尝试重置contentInset
的{{1}},但这似乎不是问题所在。我也尝试手动设置textView
,但也没有运气。
答案 0 :(得分:1)
哦伙计..所以我设法通过改变这一行来修复它(注意从float到int的转换):
frame.size.width = (int)sender.value;
不确定为什么会导致问题,通过它的外观来看,在添加到正确的填充时保持宽度不变的小部分。
答案 1 :(得分:0)
我也被这次咬了几次。我现在使用textView.frame = CGRectIntegral(theFrame);