UIView & CALayer

主要说关于layer的anchorPoint,图形变换的坐标原点

layer与view是一起的,正常情况下anchorPoint的值是(0.5, 0.5),也就是layer的正中央,如果想把坐标原点变成现在layer的左上角,如果仅仅设置anchorPoint为(0,0),这样的结果是layer的左上角变到了原来的正中央(也就是改变了原来layer的位置position),那么图形的变换就不是原来layer的左上角了,而是原来的正中央,其实就是变换的实际物理点没有变,只是逻辑上的值改了,此时还需要设置下layer的position为(0,0),这样就可以把layer再拉回和原来的位置一样,而且变换的坐标原点变成原来的左上角。

因为: 1)anchorPoint只是逻辑点,不是实际的物理显示点

            2)改变layer的anchorPoint的时候,也会改变layer的position,也就是改变了物理显示点,所以当设置anchorPoint为(0,0)的时候,坐标的变换点确实变成了layer的左上角,但是它所占据的物理显示点还是原来的layer的正中央,所以就把物理显示点(position)变到了原来的正中央的位置,也就是(width/2.f, height/2.f),所以必须再设置下postion的值是(0,0),就可以再把layer设置回最开始原来的位置。

有点绕,需要多读几遍。

转载于:https://my.oschina.net/u/913344/blog/692794

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值