如何在iphone sdk中为uislider拇指动画制作动画? 请检查下面的代码。
创建滑块
slider = [[UISlider alloc] initWithFrame:CGRectMake(0.0, 300.0, 320.0, 3.0)];
[[UISlider appearance] setThumbImage:[UIImage imageNamed:@"chnavigate-1.png"] forState:UIControlStateNormal];
UIImage *clearImage = [[UIImage imageNamed:@"png1.png"] stretchableImageWithLeftCapWidth:14.0 topCapHeight:0.0];
[slider setMinimumTrackImage:clearImage forState:UIControlStateNormal];
[slider setMaximumTrackImage:clearImage forState:UIControlStateNormal];
[slider addTarget:self
action:@selector(sliderAction:)
forControlEvents:UIControlEventValueChanged];
slider.minimumValue=0.0;
slider.maximumValue=3.6;
[slider setValue:0.0];
//slider.value = 0.1f;
[slider setContinuous:YES];
//slider.thumbTintColor=[UIColor redColor];
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
以下动画代码:
[UIView animateWithDuration:0.3 delay:1.3 usingSpringWithDamping:0.1 initialSpringVelocity:1.0 options:UIViewAnimationOptionAllowUserInteraction animations:^{
//Animations
slider.frame = CGRectMake(slider.frame.origin.x,slider.frame.origin.y - 20,slider.frame.size.width,slider.frame.size.height);
}
completion:^(BOOL finished) {
//Completion Block
}];
此动画为动画提供了完整的傻瓜。我的要求是仅动画onlu滑块拇指图像。 麻麻。 感谢...
答案 0 :(得分:0)
我做了一些探测并编写了一些测试代码,我的结论是你无法为UISlider的拇指图像设置动画,除了以下情况之外:当拇指位于滑块的正中间而不是移动。
在这种情况下,您可以使用您选择的拇指图像制作UIImageView(因为您无法为UIImage制作动画)(您必须制作一个,从iOS 7开始无法获得指向默认拇指图像的指针+),将其作为UISlider上的子视图放在默认的拇指图像上,并为其设置动画。
但是,一旦拇指处于非居中位置,你就会对抗无法获得UISlider轨道大小的事实,并且轨道尺寸小于UISlider的frame.size。宽度乘以隐藏在Apple实现中的一些数量/因子/幻数。
我想到的两种方法如下:
在任何一种情况下,您都可以跟踪并错误地找到UISlider的帧宽和轨道宽度之间的差值,这可能适用于给定版本的iOS中的给定情况,但不能保证另一种情况或更新不会破坏它。
我的解决方案,如果这是必不可少的,那就是创建我自己的UISlider版本作为UIControl的子类,允许这样的东西。