为了审美/娱乐的目的,平移大于屏幕的背景图像,而不是推入第二个视图,我试图结合两个视图的功能,一个是根视图,一个是根视图其次是推动它的观点。第二个滚动视图移动动画故障
所以,根视图有一个按钮,当点击时,开始向右滚动滚动视图而不是推动第二个视图。这只是正常:
- (IBAction)nextButton:(id)sender {
[UIView animateWithDuration:2.0 animations:^{
_scrollViewToPan.contentOffset = CGPointMake(645, 0.0);
}];
}
现在看来,这是第二个观点出现在屏幕上涉及到用户输入的一些信息。所有这些都是在我尝试将它合并到一个视图之前的第二个推送视图。现在它们被组合起来了,当它移动到容纳keyboardWasShown中的键盘时,在滚动视图动画中会出现一个小故障:(见下文) - 它在滚动到键盘上方之前跳转到原始坐标。
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(645, 0.0, kbSize.height, 0.0);
_scrollViewToPan.contentInset = contentInsets;
_scrollViewToPan.scrollIndicatorInsets = contentInsets;
CGRect aRect = self.view.frame;
aRect.size.height -= kbSize.height;
if (activeField == _nameTextView){
CGPoint scrollPoint = CGPointMake (645, 160);
[_scrollViewToPan setContentOffset:scrollPoint animated:YES];
}
if (activeField == _addressTextView){
CGPoint scrollPoint = CGPointMake (645, 160);
[_scrollViewToPan setContentOffset:scrollPoint animated:YES];
}
keyboardWillBeHidden:
[UIView animateWithDuration:0.3 animations:^{
_scrollViewToPan.contentOffset = CGPointMake(645, 0.0);
}];
当这是一个单独的视图,scrollPoint为(0160)和所有运作良好。我将它改为(645,160)以与上面所述的平移的第一偏移对齐。但是,当用户点击textView时,而不是与键盘外观一起平滑滚动时,它会跳转到原始的预先平移的坐标,然后向右滚动并最终在正确的位置结束。
简而言之,我想要的是原始坐标A - >(点按钮) - >滚动至坐标B - >点击textView /键盘显示 - >滚动至坐标C - >键盘消除 - - >滚动到坐标B.
我得到的是原始坐标A - >(tap button) - >滚动到坐标B - >点击textView/keyboard shows - >(跳转到A然后滚动到C) - >键盘解散 - >滚动到坐标B.
我该如何摆脱'跳到A'的故障?
跳转到A,然后滚动到C,这是否意味着从A到C的转换意味着它正在对角滚动? – wlue
@wlue:是的,它是 – j9suvak
我想你的代码中可能会有一些修改scrollview的副作用。我会尝试通过在' - [UIScrollView setContentOffset:]'上创建一个条件断点来进行调试,然后在点击文本视图之前打开它,然后通过运行堆栈来确定代码的哪一部分导致了它。 – wlue