我在视图控制器中添加了UIView。我想让它每5秒闪烁两次。
以下代码使UIView每1秒闪烁一次:
-(void) showHideView{
[UIView animateWithDuration:1
delay:5
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
self.myview.alpha = 0;
}
completion:^(BOOL finished){
[UIView animateWithDuration:1
delay:5
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
self.myview.alpha = 1;
}
completion:nil
];
}
];
}
如何让UIView每5秒闪烁两次? (即两次闪烁的脉冲)
答案 0 :(得分:2)
由于您已使用iOS7标记此内容,我可能会建议使用关键帧动画:
[UIView animateKeyframesWithDuration:2.5 delay:0.0 options:UIViewKeyframeAnimationOptionRepeat animations:^{
[UIView addKeyframeWithRelativeStartTime:0.0 relativeDuration:0.25 animations:^{
self.myview.alpha = 0.0;
}];
[UIView addKeyframeWithRelativeStartTime:0.5 relativeDuration:0.25 animations:^{
self.myview.alpha = 1.0;
}];
} completion:nil];
根据您的需要调整总持续时间(周期重复的频率),相对开始时间(总持续时间的百分比)和相对持续时间(再次,总持续时间的百分比)。
答案 1 :(得分:1)
将您的两个延迟更改为零。
将两个持续时间都设置为1.25。
使用计时器每2.5秒调用一次方法。
根据评论进行编辑:
请改用:
-(void) showHideView {
if( self.view.alpha == 1.0 ) alpha = 0.0;
else alpha = 1.0;
}
- (void)timerCallback {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1.25 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self showHideView];
});
// repeat above code for 2.5, 3.75, 5.0
}
每隔5秒让你的计时器调用timerCallback。