带有 alpha 的 UISlider 动画

Posted

技术标签:

【中文标题】带有 alpha 的 UISlider 动画【英文标题】:UISlider animation with alpha 【发布时间】:2011-09-04 15:24:43 【问题描述】:

我正在尝试让 UISlider 在无法使用时显示为灰色。

这是我的 UISlider 子类中的代码:

    - (void)setSymbol:(NSString *)s 
symbol = s;

float newValue = [[S76PresetManager sharedManager] getValueForKey:symbol];
[self setValue:newValue animated:YES];  

if (symbol == @"" || symbol == @"e_none") 
    // gray out the slider
    [self setUserInteractionEnabled:NO];
    [UIView beginAnimations:nil context:nil];       
    [UIView setAnimationDuration:0.5];

    [self setAlpha:0.5];

    [UIView commitAnimations];

 else 
    // reactivate the slider
    [self setUserInteractionEnabled:YES];
    [UIView beginAnimations:nil context:nil];       
    [UIView setAnimationDuration:0.5];

    [self setAlpha:1.0];

    [UIView commitAnimations];      

如果滑块的符号属性设置为@"" 或@"e_none",它将使滑块变灰并使其无法交互。然而,在某些情况下,[self setValue:newValue animated:YES] 行似乎“取消”了 setAlpha 动画。

有什么方法可以同时设置滑块的值并使用 UIView 动画更改其 alpha?

提前致谢。

【问题讨论】:

【参考方案1】:

对此我不确定...但也许按照以下方式编写代码可能会有所帮助。

[self setUserInteractionEnabled:NO];

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:0.5];

self.alpha = 0.5;
self.value = newValue;

[UIView commitAnimations];

或 我能想到的其他方法是您覆盖 setValueAnimated 方法并在其中更改 alfa

【讨论】:

嗯。这没有用,似乎每次更改滑块的值都会自动将其 alpha 更改为 1。 滑块的值会改变,但 alpha 会保持在 1。

以上是关于带有 alpha 的 UISlider 动画的主要内容,如果未能解决你的问题,请参考以下文章

在 UISlider 动画时触发 UIControlEventValueChanged?

带有渐变层的 iOS UISLider

如何在 for 循环中设置带有动画的按钮 alpha?

JFrame 绘制带有 alpha 通道的动画 gif 图像

在 UITextView 上删除带有 alpha 动画的 CAGradientLayer

如何用 UISlider 控制 UIView 的 Alpha?最新帖子