2012-07-13 59 views
0

我有scrollView其中有12個按鈕。在窗口上,一次只能看到四個按鈕。爲了動畫的目的,我需要按鈕對窗口的位置。如何獲取有關窗口的按鈕位置

我採納了這些方法,但它不是爲我工作:

[btn.superview convertPoint:btn.frame.origin toView:nil]; 

btnImgeView.frame= CGRectMake(btn.frame.origin.x + 10, 240, btn.frame.size.width, btn.frame.size.height); 

btn.frame.origin.x正在從滾動視圖的座標原點不是從屏幕的原點。

如何獲得按鈕對窗口的位置?

+0

很少有你需要屏幕座標,特別是在iOS上。你能否更詳細地解釋你想要做什麼?可能會有更好的方法。 – 2012-07-13 07:26:30

+0

我正在做的是當我點擊其中一個按鈕滾動視圖隱藏和一個imageView出現在按鈕位置,然後它滑動到屏幕左側。但是,當我向左滾動並單擊最後一個按鈕(或任何滾動後)時,imageView會出現在屏幕之外,然後向左滑動。那就是問題所在 – Dhanesh 2012-07-13 07:33:52

回答

0

從您的描述中可以看出,您真正想要做的是顯示出現按鈕的圖像視圖,但其位置位於滾動視圖內。

懷疑計算屏幕座標不是這裏的正確方法。相反,您需要用滾動視圖的位移來抵消按鈕的矩形/原點,以確定正確的位置。

使用滾動視圖的-contentOffset屬性可獲得CGPoint,指示內容的偏移量。從按鈕的邊界原點減去該點(如果您想要更方便的話,只需要center)。這將爲您提供顯示圖像的正確位置(相對於滾動視圖的框架原點)。

如果您沒有在滾動視圖中顯示圖像,則可以使用-[UIView convertPoint:fromView:][UIView convertPoint:toView:]將點轉換爲超視圖的座標系。

相關問題