0
私は数多くの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];
}
すべてのUISwitchオブジェクトへの参照を追加して、それぞれの例のような行がありますか? Aso ScrollViewtoCenter ...ビューを送信する必要があります。あなたの例で私はそれをどのようにして行いますか? –
はい、UISwitchごとに上記のコードを書く必要があります。また、scrollViewToCenterOfScreenメソッドが呼び出されると、偶数が引数としてトリガされたViewが取得されるため、そのビューを直接使用して操作を実行できます。 – Mohammad
イベントはデフォルトで送信者オブジェクトを渡します(これはscrollViewToCenterOfScreenメソッドのシグネチャと一致します)。フォームの各UISwitchコントロールに上記の行を追加するだけで、すべてがそのまま動作します。 –