IOS 图片抖动中心点

孙_尧 2014-09-25 02:41:22

图片动态效果,以黑色点为中心左右晃动,求大神指点(最好是swift语言)
...全文
281 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bannings 2014-09-26
  • 打赏
  • 举报
回复
anchorPoint、position http://blog.csdn.net/zhangao0086/article/details/38356691
iriiavan 2014-09-26
  • 打赏
  • 举报
回复
随便看看啊随便看看啊
ReyZhang 2014-09-26
  • 打赏
  • 举报
回复
引用 7 楼 qq_21259951 的回复:
应该怎样做能实现我想要的效果?
每当修改一个CALayer的anchorPoint属性时,都要重新设置CALayer的position坐标。 给你的链接中有介绍
孙_尧 2014-09-26
  • 打赏
  • 举报
回复
应该怎样做能实现我想要的效果?
ReyZhang 2014-09-26
  • 打赏
  • 举报
回复
引用 4 楼 qq_21259951 的回复:
引用
什么意思,因为设置了anchorPoint而导致图片的frame的orgin改生了改变? 是不是附加动画后导致的位置改变?
 var shake = CABasicAnimation(keyPath: "transform.rotation.z")
        horse.layer.anchorPoint = CGPointMake(0.5, 0.8)   // (0.5,0.5)是以图片为中心晃动 而(0.5,0.8)会上移下 然后晃动。这两中方法晃动中心是不变的,只是图片上移而产生晃动点往下
        shake.fromValue = -0.2
        shake.toValue = +0.2
        shake.duration = 0.4
        shake.autoreverses = true
        shake.repeatCount = 4   //重复次数
       // [yourView.layer setAnchorPoint:CGPointMake(0, 0)];
        self.horse.layer.addAnimation(shake, forKey: "animateTransform")
看如下的帖子你就明白是怎么回事了 http://www.cocoachina.com/bbs/read.php?tid=87118
Bannings 2014-09-25
  • 打赏
  • 举报
回复
这个很简单,因为默认情况下frame是从左上角(原点)开始,你设置了anchorPoint之后,原点发生了改变,frame的设置应该以修改后的原点为基准
孙_尧 2014-09-25
  • 打赏
  • 举报
回复
引用
什么意思,因为设置了anchorPoint而导致图片的frame的orgin改生了改变? 是不是附加动画后导致的位置改变?
 var shake = CABasicAnimation(keyPath: "transform.rotation.z")
        horse.layer.anchorPoint = CGPointMake(0.5, 0.8)   // (0.5,0.5)是以图片为中心晃动 而(0.5,0.8)会上移下 然后晃动。这两中方法晃动中心是不变的,只是图片上移而产生晃动点往下
        shake.fromValue = -0.2
        shake.toValue = +0.2
        shake.duration = 0.4
        shake.autoreverses = true
        shake.repeatCount = 4   //重复次数
       // [yourView.layer setAnchorPoint:CGPointMake(0, 0)];
        self.horse.layer.addAnimation(shake, forKey: "animateTransform")
ReyZhang 2014-09-25
  • 打赏
  • 举报
回复
引用 2 楼 qq_21259951 的回复:
imgView.layer.anchorPoint= CGPointMake(0.5, 0.8); 0.5是x不变,0.8是往上移动了。效果是可以实现了,但是图片位置发生改变了。
什么意思,因为设置了anchorPoint而导致图片的frame的orgin改生了改变? 是不是附加动画后导致的位置改变?
孙_尧 2014-09-25
  • 打赏
  • 举报
回复
imgView.layer.anchorPoint= CGPointMake(0.5, 0.8); 0.5是x不变,0.8是往上移动了。效果是可以实现了,但是图片位置发生改变了。
ReyZhang 2014-09-25
  • 打赏
  • 举报
回复
这里主要涉及的知识点有如下几个: 1. 如何设置这个点,以这个点为轴来左右调整 这个点可以通过设置UIImageView layer 的anchorPoint来实现
UIImageView *imgView =[ [UIImageView alloc] initWithImage:XXX];
imgView.layer.anchorPoint= CGPointMake(0.5, 0.8);
2. 设置好轴点,如何来实现旋转动画 这里建议使用CABasicAnimation 来完成动画,这里有个链接有可以看一下 http://www.cocoachina.com/bbs/read.php?tid=27152

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧