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

标签 objective-c animation background

我希望它成为我的 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/

相关文章:

iOS "calculationMode"等效的 Android 动画

android - 动画 fragment 和返回堆栈

android - 将可绘制背景设置为 TextView 不起作用

HTML/CSS - 背景图像未显示在浏览器中

objective-c - 将数据从 Swift Controller 传递到 Objective-C Controller

css - Objective-C 为 UiImageView 应用 css 样式

ios - 观察者调用的函数没有动画

html - IE8 显示错误的 CSS Sprite

iphone - 更改 block 回调的参数类型

ios - 命令/usr/bin/codesign 失败,退出代码为 1?