gpt4 book ai didi

objective-c - 在 Objective-C 上设置淡入淡出效果

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:52 26 4
gpt4 key购买 nike

我希望它成为我的 Ipad 应用程序的背景。我在 Objective-C ( native 应用程序)中构建所有内容

我需要一些帮助来弄清楚如何为图像上的每个三角形设置动画(叠加),以便它们彼此独立地淡入和淡出,目标是制作一个恒定的微光效果,这样图像就不会感觉太安静了。我必须独立地为每个三角形制作动画吗?有没有我应该看的算法所以它看起来有点随机但不是。

这是背景图

enter image description here

我需要一些关于从哪里开始以及如何解决这个问题的指导,我们将不胜感激。

最佳答案

a) 我的建议是使用 iOS 4 中引入的 UIViewAnimationWithBlocks。如果您对 block 有扎实的掌握,它们会非常有用。这是我在短短 5 分钟内创建的一个示例来说明:

typedef void(^FadeInOutBlock)(void);

@interface PMViewController ()
@property (nonatomic, copy) FadeInOutBlock fadeInOutBlock;
@end

这里我们声明了一个 typedef 来避免我们重新使用 block 语法。我们还创建了一个属性来保存动画 block 。

@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,最后,再次触发第一个动画。 (动画)

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];

if (self.fadeInOutBlock)
self.fadeInOutBlock();
}

@end

最后,在 View 中确实出现了您第一次启动它。

b)

现在,对于您提到的闪烁动画,我建议您将每个三角形分离到它自己的 UIView 中,并使用上面的技术,使用不同的持续时间和 alpha。

如果您需要许多小的 UIView,请将它们组合成一个更大的 UIView(通过使用 addSubview 方法)并将动画应用于这些“容器”UIView。

例如,您可以有四个独立的 UIView 容器,它们有一堆独立的 UIView 作为它们的 child 。然后您可以创建四个 block 动画,每个容器一个,然后将动画应用到它们。我敢打赌,通过试验,您将能够创造出非常好的效果。

关于objective-c - 在 Objective-C 上设置淡入淡出效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12292044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com