1

私は自分のビューを次のように拡大縮小しようとしています:

CGRect endFrame = self.detailView.bounds;

[UIView animateWithDuration:0.25 animations:^{
    self.descriptionButton.bounds = endFrame;
}completion:^(BOOL finished) {
    self.containerView.alpha = 0.0;
    self.detailView.alpha = 1.0;
}];

私のdetailViewはコンテナビューです。私のdescriptionButtonは左上隅にあります。ボタンで画面全体を占めるようにして、ズームインタイプの効果を出したいです。ただし、デフォルトでは、CoreAnimationはその中心のアンカーポイントからスケーリングされます。

次のように、ビューのレイヤーの右下隅にアンカーポイントを設定してみました。

self.descriptionButton.layer.anchorPoint = CGPointMake(self.descriptionButton.bounds.size.width, self.descriptionButton.bounds.size.height);

CGRect endFrame = self.detailView.bounds;

[UIView animateWithDuration:0.25 animations:^{
    self.descriptionButton.bounds = endFrame;
}completion:^(BOOL finished) {
    self.containerView.alpha = 0.0;
    self.detailView.alpha = 1.0;
}];

しかし、そうすると、アニメーションがまったく表示されません。何かご意見は?ありがとう。

4

2 に答える 2

0

あなたはほんの少しの数学を使うことができます

CGRect endFrame = self.detailView.frame;
CGRect currentFrame = self.detailView.frame;

[UIView animateWithDuration:0.25 animations:^
 {
     self.descriptionButton.frame = CGRectMake(currentFrame.x - (endFrame.size.width - currentFrame.size.width), currentFrame.y - (endFrame.size.height - currentFrame.size.height), endFrame.size.width, endFrame.size.height);
 }
                                 completion:^(BOOL finished)
 {
     self.containerView.alpha = 0.0;
     self.detailView.alpha = 1.0;
 }];
于 2012-11-28T17:52:05.413 に答える
0

anchorPoint プロパティは、0 から 1 の値に「正規化」されています。0.5、0.5 が中心です。0,0 は左上です。1,1 は右下です。

あなたのコードは、ピクセル座標を使用して anchorPoint プロパティを設定していますが、これは間違っています。それが何をするかはわかりませんが、それは間違っています。

于 2012-11-28T21:37:47.843 に答える