我有15个textFields在同一个视图上。
现在当键盘出现时,我调整了滚动视图的大小,以使视图下半部分的textField可见。
我观察到从一个textField切换到另一个textField会将scrollView带到其原始帧。
每次我从textField辞退第一个响应者时,如何避免我的scrollview框架重置?
// Here I am resetting the scrollView size so the textField do not hide behind the keyboard.
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[scroll setFrame:CGRectMake(503, 123, 515, 275)];
[scroll setContentSize:CGSizeMake(515, 550)];
}
// Here I am resizing the scrollView so after returning the keyboard the scrollView gets its original hight
- (void)textFieldDidEndEditing:(UITextField *)textField
{
[scroll setFrame:CGRectMake(503, 123, 515, 570)];
[scroll setContentSize:CGSizeMake(515, 560)];
}
答案 0 :(得分:0)
为什么每次更改scrollView
的内容大小?
[scroll setContentSize:CGSizeMake(515, 560)];
最好为其设置固定的contentSize
,并根据contentOffset
scrollView
的{{1}}
答案 1 :(得分:0)
我认为您对contentSize
的工作原理感到困惑 - 如果您的滚动视图的内容没有改变(当您显示键盘时文本字段未被删除),那么你不应该改变contentSize。正如您所做的那样设置frame
就足够了。