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


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

    最终效果:

    应用中的效果:

    素材图片:

    源码:

    //
    //  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
  • 相关阅读:
    nginx reload 与 restart 的区别
    求解一个数n的阶乘(递归求解 与 循环求解)
    类的加载机制
    JVM基础知识
    File类中常用的方法以及搜索路径下的包含指定词的文件
    给定10万数据,数据范围[0~1000),统计出现次数最多的10个数据,并打印出现次数
    TreeMap以及自定义排序的Comparable和Comparator的实现
    HashTable与LinkedHashMap
    HashMap
    Map接口
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4377584.html
Copyright © 2020-2023  润新知