メインビューと同じ高さではないuiscrollviewがあります。私はこのスクロールビューの外にuitextフィールドとボタンを持っています。私はそこに値を入力し、ボタンをクリックすると、スクロールビュー内に別のテキストフィールドが作成され、もう一度押すと、以前に作成されたテキストフィールドの下に別のテキストフィールドが作成されます。今、私はキーボードビューの上に表示する必要があります新しく作成されたテキストフィールドにビューをスクロールしようとしています。私は以下を試した。それは動作しません。スウィフト:スクロールしていない
func keyboardWillShow() {
var userInfo = notification.userInfo!
var keyboardFrame:CGRect = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).CGRectValue()
let textField: UITextField = self.scrollView!.viewWithTag(rowsCount) as! UITextField
let newRect: CGRect = CGRectMake(textField.frame.origin.x, textField.frame.origin.y, textField.frame.width, textField.frame.height)
let newFrame = self.view.convertRect(newRect, fromView: nil)
keyboardFrame = self.view.convertRect(keyboardFrame, fromView: nil)
// contentInset.bottom = newRect.origin.y + newRect.height
var viewRect: CGRect = self.view.frame
viewRect.size.height = viewRect.height - keyboardFrame.height - 40.0
if (!CGRectContainsPoint(viewRect, (newFrame.origin))) {
self.scrollView.scrollRectToVisible((newFrame), animated: true)
}
}
P .:新しいテキストフィールドが作成されるたびにrowsCountが増加します。
正確な要件が満たされていません。ボタンを押すと新しいテキストフィールドが作成されますので、そのテキストフィールドをアクティブなテキストフィールド(キーボードはそのために表示されます)にしますか? – Lion
私はアクティブなテキストフィールドが常に私が値を入力しているので、私はアクティブなテキストフィールドが嫌いです(そのうちの1つは、uiscrollview外です)。私が望むのは、新しく作成されたテキストフィールドにスクロールするスクロールビューです。 –