CALayer- bounds、position、anchorPoint

CALayer

每个UIView都有一个根CALayer,UIView本身没有显示的功能,是靠CALayer进行绘制的效果,然而CALayer不能响应事件。

好多动画效果都是通过CALayer来实现的,非根CALayer修改其属性都包含着隐式动画,例如修改背景颜色。根CALAyer把这个效果给去掉了。

CALayer * layer = [CALayer layer];
layer.backgroundColor = [UIColor redColor].CGColor;
[self.view.layer addSublayer:layer];

layer.bounds = CGRectMake(0, 0, 100, 100); //控制大小
layer.position = CGPointMake(100, 100); //控制x,y,设置在父视图中的位置,以父视图左上角为原点(0,0)
layer.anchorPoint = CGPointMake(0, 0); //定点,锚点,决定CALayer身上的哪个点会在position属性所指的位置,以自己的左上角为原点(0,0),取值在[0,1]

下面这个动画效果即可通过CALayer来实现。


 _moreView.layer.anchorPoint = CGPointMake(0.9, 0);
 _moreView.layer.bounds = CGRectMake(0, 0, 155, 212);
 _moreView.layer.position = CGPointMake(mScreenWidth - 30, 44 + 10);

       
   
if (self.moreView.hidden) { //显示
    self.moreView.hidden = NO;
    self.moreView.transform = CGAffineTransformMakeScale(0.0001, 0.001);
    [UIView animateWithDuration:0.3 animations:^{
        self.moreView.transform = CGAffineTransformMakeScale(1.0, 1.0);
    }];
} else { //隐藏
    
    [UIView animateWithDuration:0.3 animations:^{
        
        self.moreView.transform = CGAffineTransformMakeScale(0.0001, 0.001);
        
    } completion:^(BOOL finished) {
        if (finished) {
            self.moreView.hidden = YES;
        }
        
    }];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,723评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,543评论 5 13
  • 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你...
    被吹落的风阅读 5,519评论 1 2
  • 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你...
    Yiart阅读 9,295评论 3 34
  • 我有几个感情特别好的小姐妹,几个人从中学到现在,十几年亲如姐妹。彼此结识时都还是十三四岁的小女孩,如今一个个结婚生...
    古林今怪阅读 1,580评论 0 0

友情链接更多精彩内容