我希望这是我的Ipad应用程序的背景。 我正在构建目标C(本机应用程序)
中的所有内容我需要一点帮助,弄清楚如何在图像上叠加每个三角形(叠加),使其相互独立地淡入和淡出,目标是使效果持续闪烁,使图像感觉不到sos tatic。我是否必须独立制作每个三角形的动画?有没有我应该看的算法所以它似乎有点随机但不是。
这是背景图片
我需要一些指导,说明从哪里开始以及如何解决这个问题,我们将非常感谢您的反馈。
答案 0 :(得分:4)
a)我的建议是使用iOS 4中引入的UIViewAnimationWithBlocks。如果你对块有很好的把握,它们就会非常有用。以下是我在短短5分钟内创建的示例:
typedef void(^FadeInOutBlock)(void);
@interface PMViewController ()
@property (nonatomic, copy) FadeInOutBlock fadeInOutBlock;
@end
这里我们声明一个typedef来避免重新执行块语法。我们还创建了一个属性来保存动画块。
@implementation PMViewController
@synthesize myView;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
__block PMViewController *_self = self;
self.fadeInOutBlock = ^{
[UIView animateWithDuration:0.5f animations:^{
// fade out effect
_self.myView.alpha = 0.0f;
} completion:^(BOOL success){
[UIView animateWithDuration:0.5f animations:^{
// fade in effect
_self.myView.alpha = 1.0f;
} completion:^(BOOL success){
// recursively fire a new animation
if (_self.fadeInOutBlock)
_self.fadeInOutBlock();
}];
}];
};
}
我们在动画中创建动画。你从淡出开始,myView的alpha将在0.5f秒内减少到0.0f。完成后,将触发第二个动画,将myView的alpha恢复为1.0f,最后再次发出第一个动画。 (Animception)
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if (self.fadeInOutBlock)
self.fadeInOutBlock();
}
@end
最后,看来确实出现了你第一次发射它。
<强> b)中强>
现在,对于你提到的闪烁动画,我建议你将每个三角形分成它自己的UIView并使用上面的技术,使用不同的持续时间和alpha。
如果您需要使用许多小型UIViews,请将它们分组为更大的UIView(使用addSubview方法)并将动画应用于那些“容器”UIViews。
例如,你可以有四个独立的UIView容器,它们有一堆独立的UIViews作为它们的子容器。然后,您可以创建四个块动画,每个容器一个,然后将动画应用于它们。我打赌尝试一下,你就能创造出非常好的效果。
答案 1 :(得分:0)
您可以在没有任何特殊库的情况下执行此操作。因此,您需要创建一个字母为0的黑色UIView
。然后创建一个NSTimer
,以增加UIView
的alpha。