2

2つのビューの原点をアニメーション化する単純なUIViewアニメーションブロックがあります。マップビュービューの特別な位置にボタンがあります。そのため、マップの中心をアニメーション化してピンをマップと一緒に移動したい場合、マップはボタンよりも速く移動します。ボタンのアニメーションを速くしたり、マップのアニメーションを遅くしたりする方法はありますか?現時点では、マップが移動し、ボタンが終了位置にジャンプしているように見えます。

CGPoint newCenter = mapView.center;
newCenter.x -= 1;
newCenter.y -= (button.frame.size.height/2)


[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationCurveEaseIn animations:^{

     CGPoint screenPoint = fakePin.frame.origin;
     screenPoint.x -= 5;
     screenPoint.y += button.frame.size.height-4;

     mapView.mapCoord = [mapView.map convertPoint:screenPoint toCoordinateFromView:self.view];
    self.mapView.map.centerCoordinate = mapView.mapCoord;
     [button setCenter:newCenter];
}];

何か案は?

4

2 に答える 2

1

ボタンを注釈として表示しないのはなぜですか? その後、マップに沿って移動します。

それでも、中央ではなくボタンのプロパティ フレームをアニメーション化してみてください。自分で計算する必要がありますが、それが問題になる可能性があると思います。

于 2013-01-30T09:44:56.543 に答える
0

問題は私の setCenter: がアニメーション化せずに呼び出されたことであることがわかりました。どういうわけか、ios5 の Google マップで動作しました (それ自体をアニメーション化しますが、ios6= では動作しません)。

いいえ、それは動作します!!

于 2013-01-30T10:18:37.513 に答える