4

ビューを scrollview から uiview に移動したいと思います。

画面の同じ位置にとどまるように中央(またはフレーム)を変更するのに問題があります(ただし、別のビュー、おそらくスクロールビューのスーパービュー)。

ビューの中心/フレームを変換するにはどうすればよいですか?

ありがとうございました。

編集:

   CGPoint oldCenter = dragView.center;                                                                         
    CGPoint newCenter = [dragView convertPoint: oldCenter toView: self.navigationView.contentView];    
    dragView.center = newCenter;
    [self.navigationView.contentView addSubview: dragView];

(NSSet*)にいるので、タッチも使用できますtouchesBegan
機能させるのに苦労していましたが、ドキュメントはあまり明確ではありませんでした。

4

1 に答える 1

3

convertPoint:toView:UIViewのメソッドを使用できます。これは、あるビューの座標系から別のビューの座標系にポイントを変換するために使用されます。UIViewクラスリファレンスの「ビュー座標系間の変換」セクションを参照してください。利用可能な方法は他にもあります。

-編集-

convertPoint:メソッドを呼び出すときに間違ったポイントを使用しています。指定されたポイントはdragViewの座標系にある必要がありますが、dragView.centerはそのスーパービューの座標系にあります。

次のポイントを使用すると、独自の座標系でdragViewの中心が得られます。

CGPoint p;
p = CGPointMake(dragView.bounds.size.width * 0.5, dragView.bounds.size.height * 0.5);
于 2010-12-25T11:34:10.017 に答える