Tôi đang trong quá trình cuộn UIScrollView lên nếu bàn phím sẽ ẩn UITextField. tôi giảm chiều cao của UIScrollView nếu nó sẽ được bao phủ mà hoạt động tốt. nhưng khi tôi cố gắng để tăng chiều cao của UIScrollView (trở lại kích thước ban đầu), toàn bộ UIScrollView di chuyển lên và sau đó animates xuống kích thước ban đầu và vị trí. nguồn gốc di chuyển lên theo số lượng X và di chuyển xuống vị trí cần thay vì chiều cao của chế độ xem mở rộng xuống.thay đổi kích thước một UIScrollView với chuyển động khối Hoạt ảnh gốc
- (void)keyboardWillShow:(NSNotification *)n
{
keyboardMove = self.rightScrollView.frame;
offsetMove = self.rightScrollView.contentOffset;
NSDictionary* userInfo = [n userInfo];
CGSize keyboardSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
[UIView animateWithDuration:.25
delay:0
options:(UIViewAnimationOptionAllowUserInteraction)
animations:^
{
self.rightScrollView.frame = CGRectMake(self.rightScrollView.frame.origin.x, self.rightScrollView.frame.origin.y, self.rightScrollView.frame.size.width, (self.view.frame.size.height - (self.rightScrollView.frame.origin.y + keyboardSize.height)));
}
completion:nil];
if ((activeTextField.frame.origin.y + activeTextField.frame.size.height) > self.rightScrollView.frame.size.height)
{
float contentOffsetMove = (self.rightScrollView.contentOffset.y + (activeTextField.frame.origin.y - self.rightScrollView.frame.size.height) + activeTextField.frame.size.height + 10);
self.rightScrollView.contentOffset = CGPointMake(self.rightScrollView.contentOffset.x, contentOffsetMove);
}
}
- (void)keyboardWillHide:(NSNotification *)n
{
if ((activeTextField.frame.origin.y + activeTextField.frame.size.height) > self.rightScrollView.frame.size.height)
{
[UIView animateWithDuration:.25
delay:0
options:(UIViewAnimationOptionAllowUserInteraction)
animations:^{
[self.rightScrollView setContentOffset:offsetMove animated:YES];
self.rightScrollView.frame = keyboardMove;
}
completion:nil];
}
else
{
[UIView animateWithDuration:.25
delay:0
options:(UIViewAnimationOptionAllowUserInteraction)
animations:^{
self.rightScrollView.frame = keyboardMove;
}
completion:nil];
}
}
vì vậy, khi ẩn bàn phím, self.rightScrollView.origin di chuyển lên điểm X rồi làm động đến vị trí. tôi cần nguồn gốc để ở lại và chiều cao trở nên nhiều hơn (mọc xuống dưới).
bất kỳ ý tưởng nào về lý do hành động ngốc nghếch của nó?
bạn đã quản lý để khắc phục vấn đề này? Tôi có chính xác cùng một vấn đề và không thể tìm thấy một giải pháp cho nó? – pnizzle