我正试图像这样扩展我的观点:
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是容器视图。我的描述按钮位于左上角。我希望通过按钮占据整个屏幕来放大类型效果。但是,默认情况下,Core Animation会从其中心的锚点进行缩放。
我尝试将锚点设置到视图图层的右下角,如下所示:
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;
}];
但是当我这样做时,我根本看不到任何动画。有什么想法吗?感谢。
答案 0 :(得分: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;
}];
答案 1 :(得分:0)
anchorPoint属性被“标准化”为0到1之间的值.0.5,0.5是中心。 0,0是左上角。 1,1是右下角。
您的代码是使用像素坐标设置anchorPoint属性,这是错误的。我不知道它会做什么,但这是错误的。