
objective-c 我想点击一下按钮,使按钮能出现一个动画移动效果,请高手指教!
我尝试过用代码绘制的按钮和build中拖拽的按钮,使用while、for循环来控制按钮下标不断改变来显示动画移动效果,但是循环过程中的按钮位置都不显示,只有显示循环结束以...
我尝试过用代码绘制的按钮和build中拖拽的按钮,使用while、for循环来控制按钮下标不断改变来显示动画移动效果,但是循环过程中的按钮位置都不显示,只有显示循环结束以后的按钮位置。谁有更好的办法能实现点击按钮以后按钮游走的效果呀?
展开
展开全部
首先,你是指mac开发的按钮NSButton,还是iphone的UIButton,
如果是NSButton,在设置frame属性的同时要调用 [btn setNeedsDisplay],这个是要求按钮重绘。即调用drawRect方法。。
如果是UIButton,那直接设置frame属性就可以拉,当然 也可以不要循环一直去设置。。可以这样:
btn.frame = CGRectMake(0,0,40,25);
[UIVIew beginAnimation:nil context:NULL];
[UIVIew setAnimationDuration:0.5];
btn.frame = CGRectMake(100,100,40,25);
[UIVIew commitAnimation];
这样放在动画块中,只需要设置 初始的位置 和动画结束的 位置就可以了。。
如果是NSButton,在设置frame属性的同时要调用 [btn setNeedsDisplay],这个是要求按钮重绘。即调用drawRect方法。。
如果是UIButton,那直接设置frame属性就可以拉,当然 也可以不要循环一直去设置。。可以这样:
btn.frame = CGRectMake(0,0,40,25);
[UIVIew beginAnimation:nil context:NULL];
[UIVIew setAnimationDuration:0.5];
btn.frame = CGRectMake(100,100,40,25);
[UIVIew commitAnimation];
这样放在动画块中,只需要设置 初始的位置 和动画结束的 位置就可以了。。
展开全部
princess0502说的方法是可行的,还可以使用NSTimer,每隔一段时间改变一次坐标,直到到达你要的位置时,再停止NSTimer,具体使用方法百度有一大堆就不细说了。。至于你用while,for循环,怎么都不会有移动效果的。。要说原因的话,应该是运行太快了,以至于你看不到中间过程而只能看到起始和结束。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用CoreAnimation一个动画不就行了。
干嘛要写循环啊?
干嘛要写循环啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有直接的可以调用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |