我试图在创建自定义控件的同时学习一些动画。我在这里经历了一个奇妙的教程:http://www.raywenderlich.com/9864/how-to-create-a-rotating-wheel-control-with-uikit
我已经让它工作了,开发者在github上有一个指向他的代码的链接:https://github.com/funkyboy/How-To-Create-a-Rotating-Wheel-Control-with-UIKit
现在我要做的是,当选定的项目在选定的插槽中旋转时,为其设置动画,使其增长。我还将选定的插槽更改为位于底部,为了适应这种情况,我更改了方法中的代码
- (void) drawWheel
我改了台词
感应电动机。transform=CGAffineTransformMakeRotation(角度大小*i);
到
感应电动机。transform=CGAffineTransformMakeRotation(角度大小*i-M_PI/2);
考虑到目前的情况-pi/2
接下来我要做的是让选定的丁香变大变小;这会发生在两个不同的场合;一次,当轮子加载时,当一个闭合物穿过选定的位置时。这里我有点卡住了。
我写了以下方法:
>
(void)growImage:(UIImageView*)v{
[UIView动画以持续时间: 1.0动画:^{v.transform=CGAffineTransformMakeScale(1.3,1.3);}完成:^(BOOL完成){[UIView动画以持续时间: 1.0动画:^{v.transform=CGAffineTransformMakeScale(1.0,1.0); }]; }];
}
我首先调用initWheel方法,其中初始丁香是第一次设置:
if (i == 0) {
im.alpha = maxAlphavalue;
[self growImage: cloveImage];
}
对于第二项,我写了以下方法:
我在-(void)touchesend:(NSSet*)toucheevent:(UIEvent*)event中调用它{
因此,在设置alpha值之后:
lab.alpha = maxAlphavalue;
[self findViewandGrowImage : currentValue];
对于我做错了什么,我有一种根本的脱节感;第一个案例效果良好;第二种情况使丁香在轮子上旋转到不同的部分,并生长和收缩。。。我不知道为什么。我想要任何意见。
谢谢你。
如果您有以下转换:
m.transform = CGAffineTransformMakeRotation(angleSize*i - M_PI/2);
然后将其动画化为
[UIView animateWithDuration:1.0 animations:^{ v.transform = CGAffineTransformMakeScale(1.3, 1.3); }
当它设置动画时,它将从(angleSize*i-M_PI/2)
旋转回角度0,因为第二次变换不包括此旋转。
如果要更改其大小并保持其当前角度,则需要将旋转与比例相结合,然后在计算中使用该比例,如下所示:
[UIView animateWithDuration:1.0 animations:^{
CGAffineTransform newTransform = CGAffineTransformMakeRotation(angle);
v.transform = CGAffineTransformScale(newTransform, 1.3, 1.3);v.transform = CGAffineTransformMakeScale(1.3, 1.3);
}
问题内容: 在Obj-C中 将设置contentMode。 为什么 在Swift中不能工作? 问题答案: 令人困惑的是,Swift删除了ObjC枚举值的前缀: 这是因为Swift已经知道正在使用哪种枚举类型。另外,您也可以指定枚举: 注意:在版本3之前的Swift版本中,“ scaleAspectFill”需要大写。
虽然有几个问题的答案与我的相似,但似乎没有一个能解决我的困境。我有一个图像视图,我可以通过改变水平和垂直约束来移动它,并使用长按手势在屏幕上移动。如果这张图像没有移动一定的距离,我希望它能动画化回到原来的位置。我正在使用以下代码示例来尝试执行此操作: 和在其他地方定义为用户单击的位置 和定义为用户在超级视图中的位置 不用说,平移图像时,一切都正常。它会拖动,然后在手势结束时停止。问题是,如果用户没
点击图像,图像会产生抖动。 [Code4App.com]
我正在MyUILabel上执行2个动画。MyUILable是从UILabel派生的自定义类,它实现了只绘制边框的drawRect方法。 这是我的动画代码: 在第一个动画开始时,一条灰色的线出现在我的标签的顶部边缘,并且在所有动画完成后仍然存在。我想提一下,这条线不是我的绘图实现的一部分,即使我的绘图是空的,它也会出现。标签也比最初小一点。 所附图片不成比例。 动画之前: 动画后: 猜猜为什么会这样
本文向大家介绍当一个元素被设置为浮动后,它的display值变为什么呢?相关面试题,主要包含被问及当一个元素被设置为浮动后,它的display值变为什么呢?时的应答技巧和注意事项,需要的朋友参考一下 一个元素被设为绝对定位或者浮动后,其display计算值就变为了block,尽管其表现形式和inline-block类似——包裹内部元素且不超出包含块的特性。按照如下方式在控制台尝试可验证: var
问题内容: 我尝试使用下面的代码将命令输出存储在数组中,但是在“ while循环”之后无法打印数组元素,这意味着在代码的最后一行中,我的代码是否存在任何问题? 问题答案: 问题是您在 子 外壳中添加了元素。详细说明: 导致在子shell中执行,这是一个单独的执行环境。这意味着设置的变量不适用于 当前 外壳,其执行环境不会受到影响。您可以改为使用流程替代来实现相同目的: 请注意,不建议解析。尝试使用