2013-07-08 107 views
0

我有內容的UIScrollView兩次iphone的屏幕尺寸(縱向)。它擁有兩個圖像瀏覽。用戶可以滾動到另一個。 現在點擊inageviews我以模態方式呈現另一個ViewController並更詳細地顯示該圖像。的UIScrollView,模態窗口,內容移動

問題是,當用戶消除該模式VC並用兩幅圖像返回到原始VC時,兩幅圖像在滾動視圖的內容中在x軸上移動了160個點,因此第一幅圖像有一個原點(0,0)的點,第二個在(320,0)處有它,它們分別切換到(-160,0)和(160,0)後解除模態VC。

我研究這個,我發現我必須處理

- (void)viewWillAppear:(BOOL)animated { 
     [super viewWillAppear:animated]; 
     //here I try to manipulagte and foce another origin point, but it just doesn't 
    update 
    } 

其他人發現這樣

[self.scrollView setContentOffset:CGPointZero]; 

一個解決辦法,而這就迫使滾動回去,即使第一個圖像用戶點擊了第二張圖片!

任何想法?

+0

嘗試更新ViewWillLayoutSubviews中的滾動視圖內容大小...看看它是否有效 – Sabby

回答

0

我不完全確定爲什麼當您關閉模態VC時,您的scrollView會自動移出位置,但我會說你最好的選擇是手動改變內容偏移量(如你的答案中所示) 。所有需要調整的是,當您點擊其中一個圖像時,請在該父VC中的某個屬性中保留對該視圖的引用(可能爲ImageView)。當你調用setContentOffset,做它像這樣(說你存儲視圖到一個名爲selectedView屬性)

self.scrollView.contentOffset = CGPointMake(self.selectedView.frame.origin.x, self.selectedView.frame.origin.y) 

這應該將其調整到合適的位置(可以加上或減去一個小的值如果你願意,可以抵消它)

+0

仍然無法正常工作,圖像移動160像素,我不知道其他事件在此之後開火? – funkycoldmedia