具有突出显示状态的UIButton具有多于1个步骤

时间:2014-02-06 12:18:50

标签: ios ios7 uibutton

以下用例:

屏幕底部显示了uibutton,可以为应用启用主要的useCase。如果用户第一次在应用程序中登录,我想通过将其设置为突出显示状态来显示该按钮的精彩动画 - 但是 - 我希望动画至少具有4个状态(按钮具有不同颜色的圆环) - 在高光动画期间,我想在快速动画中为每个状态添加1个铃声

任何人都知道如何做到这一点?

(我不想为此使用单独的imageView)

更新

感谢帮助 - 我找到了一个有效的解决方案。

我已经将UIButton子类化并覆盖了setHighlighted:(BOOL)highlighted方法。在方法内部,我检查是否要使用自定义突出显示。

突出显示本身是由..

完成的

[UIView transitionWithView:self.imageView duration:0.1f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{ self.imageView.image = [UIImage imageNamed:@"xyz.png"]; } completion:^(BOOL finished) { if(finished)..

重要提示:adjustsImageWhenHighlighted = NO

完美适合我。

1 个答案:

答案 0 :(得分:0)

创建一个名为NSInteger的整数(timerValue)属性,并将其初始化为0中的viewDidLoad

还可以在任何想要开始动画的位置创建NSTimer,并安排它每200毫秒调用一个选择器,或者在动画帧之间设置任何时间延迟:

 NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.2f
                                                   target:self
                                                 selector:@selector(handleTimer)
                                                 userInfo:nil
                                                  repeats:YES];

每次调用timerValue时,都会根据handleTimer更改按钮的图像:

-(void)handleTimer
{
    switch ( self.timerValue )
    {
         case 0 :
            //load your frame 0 image on button
         break;
         case 1 :
            //load your frame 1 image on button
         break;
         case 2 :
            //load your frame 2 image on button
         .
         .
         .
         //etc
    }
    self.timerValue = self.timerValue+1;
}