【发布时间】:2015-04-18 23:58:59
【问题描述】:
在 viewDidLoad 方法中,我使用视图框架中的最小 X 和 Y 值创建一个 CGPoint。然后我将该视图层的锚点设置为 0,0,并将其位置设置为 CGPoint。然后我应用 CGAffineTransformScale 使其为 0,0(隐藏它。)每当用户触摸按钮时,我希望它从其锚点 0,0(左上角)动画到全宽和全高。如果用户再次按下动画它到 0,0 。但是视图不合适(从锚点更改),每当我在按钮上缩放它时,弹出动画不等于图层动画隐藏时。也就是说,只要图层可见,您就可以看到它从无宽度和高度过渡到全宽和高度,但当它变得不可见时,它就会消失。
这里是 viewWillLayoutSubviews
self.original = CGPointMake(CGRectGetMinX(self.menu.frame), CGRectGetMinY(self.menu.frame));
self.menu.layer.anchorPoint = CGPointMake(0, 0);
self.menu.layer.position = self.original;
self.menu.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0, 0);
这是关于按钮点击逻辑
if(self.isMenuVisible)
{
//hide menu
[UIView animateWithDuration:.5 animations:^{
self.menu.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0, 0);
}];
self.isMenuVisible = NO;
}
else
{
//show it
[UIView animateWithDuration:.5 animations:^{
self.menu.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1, 1);
}];
self.isMenuVisible = YES;
}
【问题讨论】:
标签: ios uiview core-animation cgaffinetransform