目標:ビュー内のsubViewの位置を見つける方法。ビュー内のスクロールバーの左上(x、y)の位置を確認したいのですが、アプリケーションでナビゲーションバーも使用していますが、上からのサブビューの位置に影響しますか?
サブビューの高さと幅を次のように見つける方法を知っています
CGSize viewSize = scrollView.frame.size;
height=viewSize.height;
width=viewSize.width;
あなたが探しているのはおそらく:
CGPoint viewPosition = scrollView.frame.origin;
x=viewPosition.x;
y=viewPosition.y;
ただし、別のビューの座標系に変換する場合は、次を使用できます。
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
そして、あなたが翻訳したいポイントとビューをそれに渡します。
xとyを取得するには、origin
CGPoint point = scrollView.frame.origin;
float x = point.x;
float y = point.y;
これも使えます...
CGRect rect = [scrollBar frame];
float origineFromX = rect.origin.x;
float origineFromY = rect.origin.y;
これがあなたを助けるかもしれません...
ビューにナビゲーションバーを配置する場合、ビュー内で適切に位置合わせするには、スクロールビューの位置を下にシフトする必要があります。スクロールビューの原点(左上の位置)は、ナビゲーションバーがある場合とない場合で異なります。
フルスクリーンのスクロールビューを使用している場合は、ナビゲーションバーに対応するためにスクロールビューの高さを低くする必要があります。