У меня есть представление прокрутки, которое имеет множество textfields
, а затем несколько UISwitches
и UIButtons
, за которыми следуют еще textfields
.
Я нашел событие textFieldDidBeginEditing
и использую его для прокрутки textfield
в представление. Но я не нашел ничего похожего для других объектов, таких как UISwitch
и UIButton
.
Есть ли что-то, что делает это? Ниже приведен код, который я использую для textfields
:
- (void)textFieldDidBeginEditing:(UITextField *)textField {
[self scrollViewToCenterOfScreen:textField];
}
- (void)scrollViewToCenterOfScreen:(UIView *)theView {
CGFloat viewCenterY = theView.center.y;
CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];
CGFloat availableHeight = applicationFrame.size.height - _keyboardHeight; // Remove area covered by keyboard
CGFloat y = viewCenterY - availableHeight / 2.0;
if (y < 0) {
y = 0;
}
ScrollView.contentSize = CGSizeMake(applicationFrame.size.width, applicationFrame.size.height + _keyboardHeight);
[ScrollView setContentOffset:CGPointMake(0, y) animated:YES];
}