私が持っているのは15のテキストフィールドであるため、1つのViewControllerに設定することはできません。スクロールビューに15個のテキストフィールドを追加しました。ただし、画面から指を離すとスクロールビューが上がります。
下にスクロールしたときに下に固執する方法はありますか?
私が持っているのは15のテキストフィールドであるため、1つのViewControllerに設定することはできません。スクロールビューに15個のテキストフィールドを追加しました。ただし、画面から指を離すとスクロールビューが上がります。
下にスクロールしたときに下に固執する方法はありますか?
あなたのViewWillApear
セットであなたのUIScrollview
contentSize
ように:-
-(void)viewWillAppear:(BOOL)animated
{
srcScrollView.contentSize = CGSizeMake(320, 500);
[super viewWillAppear:YES];
}
そしてあなたのTextFiledデリゲートは次のようになります:-
-(void)textFieldDidBeginEditing:(FMTextField *)textField
{
[srcScrollView setContentOffset:CGPointMake(0,textField.center.y-140) animated:YES];
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
[srcScrollView setContentOffset:CGPointMake(0,0) animated:YES];
return YES;
}
contentSize
scrollViewのを正しく設定する必要があります。あなたの場合、コンテンツの高さを次のように設定する必要があります。
lastTextField.frame.origin.y + lastTextField.frame.size.height + 10
ここで、10は必要な下マージンです。
以下は問題を解決しました...
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
[self.scrollView setContentSize:CGSizeMake(320, 1200)];
}
contentSizeは、コンテンツ全体を表示するのに十分な大きさではないようです。contensizeを次のように設定します
//Assuming you have a reference to the 15th textField
CGRect textField15Frame = self.textField15.frame;
CGSize contentSize = self.scrollView.contentSize;
contentSize.height = textField15Frame.origin.y+textField15.size.height+5.0f;
[self.scrollView setContentSize:contentSize];