Как экран прокрутки, когда окно выбора выглядит так же, как клавиатура? - PullRequest
1 голос
/ 28 октября 2011

У меня есть экран, который я показал на картинке. Теперь я хочу, чтобы, когда пользователь нажимал на текстовое поле, появлялось окно выбора. Поэтому я хочу, чтобы при появлении окна выбора вид автоматически прокручивался при появлении клавиатуры screen

Как это сделать, когда появляется окно выбора?

Заранее спасибо ...

Ответы [ 2 ]

1 голос
/ 28 октября 2011

Вы должны взглянуть на этот замечательный проект на gitHub:

https://github.com/reednj/TDSemiModal

Он предоставляет класс для отображения палитры как клавиатуры, с перемещением подключенного поля в поле зрения..

1 голос
/ 28 октября 2011

Я предполагаю, что вы хотите, чтобы ваше приложение было в портретной ориентации, так как вы можете вносить изменения, если оно в альбомной ориентации. Добавьте 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 был подключен и действовал как клавиатура UITextField или UITextView, вы всегда можете подключить его к .inputView свойство UITextField, и это также будет работать.

Надеюсь, что поможет!

...