zoukankan      html  css  js  c++  java
  • 山寨"每日故宫"应用的图层遮罩效果

    山寨"每日故宫"应用的图层遮罩效果

    最终效果:

    应用中的效果:

    素材图片:

    源码:

    //
    //  ViewController.m
    //  每日故宫
    //
    //  Created by XianMingYou on 15/3/30.
    //  Copyright (c) 2015年 XianMingYou. All rights reserved.
    //
    
    #import "ViewController.h"
    
    @interface ViewController ()
    
    @property (nonatomic, strong) UIImageView *bgImageView;
    @property (nonatomic, assign) CGRect       leftRect;
    @property (nonatomic, assign) CGRect       rightRect;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        // 背景view
        self.bgImageView        = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.jpg"]];
        self.bgImageView.center = self.view.center;
        [self.view addSubview:self.bgImageView];
        
        // 存储必要的frame值
        CGRect  midRect = self.bgImageView.frame;
        CGFloat offsetX = 20.f;
        self.leftRect   = CGRectMake(midRect.origin.x - offsetX,
                                     midRect.origin.y,
                                     midRect.size.width,
                                     midRect.size.height);
        self.rightRect  = CGRectMake(midRect.origin.x + offsetX,
                                     midRect.origin.y,
                                     midRect.size.width,
                                     midRect.size.height);
        
        // 加载图片
        UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"31"]];
        imageView.frame        = self.view.bounds;
        [self.view addSubview:imageView];
        
        
        // 执行动画
        [self animationBGImageViewWithDirection:YES];
    }
    
    - (void)animationBGImageViewWithDirection:(BOOL)left {
        [UIView animateWithDuration:2.f animations:^{
            if (left == YES) {
                self.bgImageView.frame = self.rightRect;
            } else {
                self.bgImageView.frame = self.leftRect;
            }
        } completion:^(BOOL finished) {
            [self animationBGImageViewWithDirection:!left];
        }];
    }
    
    @end
  • 相关阅读:
    python day01学习
    标准化体系建设(下):如何建立基础架构标准化及服务化体系?
    用EL表达式与Java代码的共享数据
    String和StringBuilder的相互转化
    博客园的一个bug_修改文章标签
    int const *p和int *const的区别
    C++ assert()的用法
    java中,为什么char类型数组可以直接用数组名打印,而int型数组打印结果是地址值!
    传说中的栈溢出
    Trello
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4377584.html
Copyright © 2011-2022 走看看