iPhone:在UITextField之间切换时UIScrollView出现问题

时间:2011-05-04 08:55:15

标签: iphone objective-c cocoa-touch ios4

我有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)]; 
        }

2 个答案:

答案 0 :(得分:0)

为什么每次更改scrollView的内容大小?

[scroll setContentSize:CGSizeMake(515, 560)];

最好为其设置固定的contentSize,并根据contentOffset

更改scrollView的{​​{1}}

答案 1 :(得分:0)

我认为您对contentSize的工作原理感到困惑 - 如果您的滚动视图的内容没有改变(当您显示键盘时文本字段未被删除),那么你不应该改变contentSize。正如您所做的那样设置frame就足够了。