爲了審美/娛樂的目的,平移大於屏幕的背景圖像,而不是推入第二個視圖,我試圖結合兩個視圖的功能,一個是根視圖,一個是根視圖其次是推動它的觀點。第二個滾動視圖移動動畫故障
所以,根視圖有一個按鈕,當點擊時,開始向右滾動滾動視圖而不是推動第二個視圖。這只是正常:
- (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