当键盘出现时,选择器视图出现时的滚动屏幕如何显示?

时间:2011-10-28 06:38:58

标签: iphone uiviewcontroller uiscrollview uipickerview

我有一个我在图像中显示的屏幕。现在我希望当用户点击文本字段时,会出现一个选择器视图。所以我希望当选择器视图出现时,当键盘出现时,视图将自动滚动。 screen

当选择器视图出现时,该怎么做?

提前致谢...

2 个答案:

答案 0 :(得分:1)

我会假设您希望自己的应用是纵向的,因为如果它是横向的,您可以进行更改。将UIPickerView添加到您的笔尖并将其连接到IBOutlet。然后,使用IBAction方法创建一个动画按钮UIPickerView。试试.h文件:

@interface MyViewController: UIViewController {
  BOOL                    _pickerIsVisible;
  IBOutlet UIPickerView * _picker;
}

- (IBAction)buttonMethod:(UIButton *)aButton;

并在您的.m文件中:

- (void)viewDidLoad; {
  [super viewDidLoad];
  _pickerIsVisible = NO;
}

- (IBAction)buttonMethod:(UIButton *)aButton; {
  if(_pickerIsVisible){
    _pickerIsVisible = NO;
    [UIView animateWithDuration:2.0f
            animations:^{ 
                CGPoint point = _picker.frame.origin;
                point.y += 216; // The height of the picker.
                _picker.frame.origin = point;
            } 
            completion:^(BOOL finished){
              // Do something here if you want.
            }];
  }
  else{
    _pickerIsVisible = YES;
    [UIView animateWithDuration:2.0f
            animations:^{ 
                CGPoint point = _picker.frame.origin;
                point.y -= 216; // The height of the picker.
                _picker.frame.origin = point;
            } 
            completion:^(BOOL finished){
              // Do something here if you want.
            }];
  }
}

确保将笔尖中的UIPickerView设置为y坐标为480,因此它位于视图下方。

修改 如果您希望将UIPickerView连接起来,就像UITextFieldUITextView的键盘一样,你总是可以将它连接到.inputView的{​​{1}}属性,这也可以。

希望有帮助!

答案 1 :(得分:1)

你应该在gitHub上看看这个伟大的项目:

https://github.com/reednj/TDSemiModal

它提供了一个类,用于使选择器看起来像键盘,将连接的字段移动到视图中。