2013-07-04 25 views
1

我有一個錯誤,我一直在尋找兩個多小時,仍然不知道它爲什麼會發生。 我在滾動視圖上有一個註冊表單,如果它們的鍵盤位於文本框的位置(在編輯啓動時調用該函數),滾動視圖就會向下滾動。 下面的代碼段,其中的錯誤發生了:Xcode - 滾動視圖中的內容偏移

CGPoint scrollerOffset = scroller.contentOffset; 
UITextField *currentTextField = sender; 
CGPoint textFieldOrigin = currentTextField.frame.origin; 


if (scrollerOffset.y < textFieldOrigin.y) { 
    scrollerOffset.y = textFieldOrigin.y - currentTextField.frame.size.height; 
    NSLog(@"Offset: %f",scrollerOffset.y); 
    [scroller setContentOffset:scrollerOffset animated:YES]; 
} 

現在,這裏的樂趣的開始。

如果我有這樣的模擬器,並在Phone Nr字段內單擊,NSLog會爲scrollerOffset.y顯示590.000,並且文本字段會一直跳到scrollview的頂部,因爲它應該如下圖所示它顯示。

12

,但如果我有這樣的模擬器,然後單擊站電話號碼欄內的NSLog再次顯示590.000,但滾動視圖不跳起來顯示文本字段...

33

編輯:如果我沒有動畫滾動,它完美的工作,只有動畫時出錯。

回答

1

嗯,我已經找到了一種思維一天後的溶液,因此,如果任何人有同樣的問題,繼承人是解決方案:從這裏

解決方案:http://www.pressingquestion.com/1128098/Disable-Uiscrollview-Scrolling-When-Uitextfield-Becomes-First-Responder

基本上,iOS版具有一個內置的滾動條,如果文本字段離開屏幕,它也會滾動顯示(通常文本字段的中心離開屏幕,離開屏幕不在屏幕上,如果它被鍵盤隱藏,它仍然被視爲打開屏幕)。所以我打電話給我的功能,做了滾動,然後iOS做了他的滾動,把我搞砸了。所以你需要禁用iOS的內置滾動功能。

相關問題