如何通过不可见的 UIslider 实现图像动画?

Posted

技术标签:

【中文标题】如何通过不可见的 UIslider 实现图像动画?【英文标题】:How to implement image animation via an invisible UIslider? 【发布时间】:2011-04-20 12:11:17 【问题描述】:

我有一个问题是使用 UISlider 来控制图像动画

而且这张图片上有隐藏的滑块可以覆盖它......

看起来像这样

我的问题是......如何调整图像角度,当我改变我的幻灯片值???

所以我可以让图像动画从左图到右图???

谢谢

韦伯

上传示例代码Here

希望有人能帮我解决这个问题

【问题讨论】:

【参考方案1】:

您要旋转图像吗?然后使用:

imageView.transform =  GAffineTransformRotate(imageView.transform,RADIANS(degreesToRotate));

【讨论】:

这非常接近我想要的答案,但是如何设置滑块的最小值/最大值,并设置“degreesToRotate”?这是我的 IBAction:int progressAsInt =(int)(invisibleSlider.value + 0.5f); if (progressAsInt==0) [dimmerImg setImage:[UIImage imageNamed:@"slider0.png"]]; else [dimmerImg setImage:[UIImage imageNamed:@"slider99.png"]]; dimmerImg.transform = CGAffineTransformRotate(dimmerImg.transform, progressAsInt); UISlider 值是一个介于 0 和 1 之间的浮点数。所以要获得度数,只需将 360 乘以滑块值。【参考方案2】:
- (IBAction)changeSliderValue:(id)sender
    int progressAsInt =(int)(invisibleSlider.value);
    if (progressAsInt==0) 
        [dimmerImg setImage:[UIImage imageNamed:@"slider0.png"]];
    
    else 
        [dimmerImg setImage:[UIImage imageNamed:@"slider99.png"]];
        CGAffineTransform transform = CGAffineTransformIdentity;
        dimmerImg.transform = CGAffineTransformRotate(transform, progressAsInt * M_PI / 180);
        //dimmerImg.transform = CGAffineTransformRotate(dimmerImg.transform, progressAsInt);
    

这很好用~

【讨论】:

以上是关于如何通过不可见的 UIslider 实现图像动画?的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义 UISlider 以使步骤可见

如何让 UISlider 的“轨道”不可见?

使用 MMSegmentSlider 的 UISlider 动画

looper.js 插件 - 交叉淡入淡出动画之间不可见的图像

自定义 UISlider 不会结束

在不使用图像的情况下增加 UISlider 高度