http://www.cnblogs.com/benbenzhu/p/3615516.html?utm_source=tuicool&utm_medium=referral
名次解释:
1.anchorPoint
我们要解释的anchorPoint就相当于白纸上的图钉,它主要的作用就是用来作为变换的支点,旋转就是一种变换,类似的还有平移、缩放。
可以得出在白纸的中心点、左下角和右上角的anchorPoint为(0.5,0.5), (0,1), (1,0)。
2. position
position是不是就是anchorPoint在superLayer中的位置呢?答案是确定的,更确切地说,position是layer中的anchorPoint点在superLayer中的位置坐标。因此可以说, position点是相对suerLayer的,anchorPoint点是相对layer的,两者是相对不同的坐标空间的一个重合点。
再来看看position的原始定义: The layer’s position in its superlayer’s coordinate space。
中文可以理解成为position是layer相对superLayer坐标空间的位置,很显然,这里的位置是根据anchorPoint来确定的。
中文可以理解成为position是layer相对superLayer坐标空间的位置,很显然,这里的位置是根据anchorPoint来确定的。
3.具体代码实现
效果是:在点击处,出现一个由小变大的效果,然后展示出来的动画效果。
隐藏的时候是,出现一个由大到小,然后在点击处消失的动画效果。
_tableView.contentInset = UIEdgeInsetsMake(5, 0, 0, 0);//距离上边界5个像素
_tableView.transform = CGAffineTransformMakeScale(0.01, 0.01);//缩放效果
_tableView.alpha = 0;
_tableView.layer.position = CGPointMake(kDEVICEWIDTH-5, 0);//复原的原始点
_tableView.layer.anchorPoint = CGPointMake(1.0, 0);//沿着右上角缩放
#pragma mark -- 展示
- (void)showInView:(UIView *)view
{
if (!view)
{
return;
}
//self.maskView.alpha = 0.4;
[view addSubview:self];
[UIView animateWithDuration:0.2 animations:^{
//给人以由小到大的展示视觉效果
self.tableView.transform = CGAffineTransformMakeScale(1.0, 1.0);//还原原始尺寸
self.tableView.alpha = 1;
}];
}
#pragma mark -- 移除全部
- (void)hideView
{
[UIView animateWithDuration:0.3 animations:^{
//给人以由大到小的消失的视觉效果
self.tableView.transform = CGAffineTransformMakeScale(0.01, 0.01);//
self.tableView.alpha = 0;
} completion:^(BOOL finished)
{
[self removeFromSuperview];
}];
}