2013-10-10 83 views
0

我想運行一個動畫,它使用UIScrollView中的項目位置作爲目標座標。我能夠靶向目的地位置,而不通過使用下面的代碼線改變滾動視圖:更改後的UIScrollView位置ContentOffset

CGPoint endPoint = [dest_image.superview convertPoint:dest_image.frame.origin toView:nil]; 

端點被用於動畫目的和dest_image是在UIImageView的滾動視圖。

在某些情況下,我需要在運行相同的動畫之前抵消滾動視圖以顯示目標UIImageView。我用下面的語句可以這樣做:

[self.scrollView setContentOffset:CGPointMake(dest_image.frame.origin.x, dest_image.frame.origin.y) animated:YES]; 

但是,當我試圖讓使用上述同一端點代碼的絕對位置,目標是離屏幕。在更改contentOffset後,如何在滾動視圖中獲取目標ImageView的絕對位置(在self.view座標中)?

提前致謝!

回答

0

當您通過nil-[UIView convertPoint:toView:]時,您將dest_image.frame.origin轉換爲dest_image.superview.window座標空間。您應該通過self.scrollView將其轉換爲該座標空間。

+0

謝謝。我將dest_image.superview更改爲self.scrollview。現在,圖像向左過渡大約一個UIImageView的寬度。 – Jack120

+0

不,不要將'dest_image.superview'改爲'self.scrollView' - 將'nil'改爲'self.scrollView'。 – hatfinch

相關問題