0

12個のボタンがあるscrollViewがあります。ウィンドウでは、一度に 4 つのボタンしか表示されません。アニメーションの目的で、ウィンドウに対するボタンの位置が必要です。

私はこれらの方法に従っていましたが、うまくいきませんでした:

[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 は、画面の原点ではなく、scrollView の原点から座標を取得しています。

ウィンドウに関するボタンの位置を取得するにはどうすればよいですか?

4

1 に答える 1

0

あなたの説明から、あなたが本当にやりたいことは、ボタンが表示される画像ビューを表示することのように聞こえますが、その場所はスクロールビュー内にあります。

お察しのとおり、画面座標を計算することは、ここでは正しい方法ではありません。代わりに、正しい位置を決定するために、ボタンの矩形/原点をスクロール ビューの変位でオフセットする必要があります。

スクロール ビューの-contentOffsetプロパティを使用してCGPoint、コンテンツのオフセットを示す を取得します。ボタンの境界の原点からそのポイントを引きます (または、centerより便利なものが必要な場合)。これにより、画像を表示する正しいポイントが得られます (スクロール ビューのフレームの原点に対して)。

スクロール ビューに画像を表示していない場合は、 または を使用して、ポイントをスーパービューの座標系に変換でき-[UIView convertPoint:fromView:]ます[UIView convertPoint:toView:]

于 2012-07-13T08:04:04.573 に答える