3
我想創建一個「呼吸」的UIButton
,將其alpha從1.0更改爲0.7並重新返回。代碼非常簡單,但是當動畫運行時,按鈕不可點擊。這是一個可惜的,一個按鈕。我可以理解爲什麼當動畫改變位置時按鈕可能不可點擊,但改變alpha對我來說似乎是無害的。有沒有辦法使按鈕可點擊,保持動畫,而不是手工動畫?如何製作帶有動畫Alpha的可點擊的UIButton?
我想創建一個「呼吸」的UIButton
,將其alpha從1.0更改爲0.7並重新返回。代碼非常簡單,但是當動畫運行時,按鈕不可點擊。這是一個可惜的,一個按鈕。我可以理解爲什麼當動畫改變位置時按鈕可能不可點擊,但改變alpha對我來說似乎是無害的。有沒有辦法使按鈕可點擊,保持動畫,而不是手工動畫?如何製作帶有動畫Alpha的可點擊的UIButton?
使用不透明度。
UIButton *btnTest = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnTest.frame = CGRectMake(0, 0, 100, 100);
[btnTest setTitle:@"Breathe" forState:UIControlStateNormal];
[btnTest addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnTest];
CABasicAnimation *fadeAnimation=[CABasicAnimation animationWithKeyPath:@"opacity"];
fadeAnimation.fromValue=[NSNumber numberWithFloat:0.7];
fadeAnimation.toValue=[NSNumber numberWithFloat:1.0];
fadeAnimation.duration=1.0;
fadeAnimation.repeatCount=INFINITY;
fadeAnimation.autoreverses=YES;
[btnTest.layer addAnimation:fadeAnimation forKey:@"fadeInOut"];
完美,這個工程。我試圖在動畫層而不是按鈕之前,但我正在尋找`alpha`屬性並忽略了`opacity`。無論哪種方式,它都不適用於隱式動畫,您必須將動畫直接附加到圖層才能使按鈕生效。謝謝! – zoul 2011-01-21 17:06:20