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

简介:

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

最终效果:

应用中的效果:

 

 

素材图片:

源码:

//
//  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

目录
相关文章
Threejs使用精灵Sprite作为标签,鼠标悬浮精灵上时鼠变小手
Threejs使用精灵Sprite作为标签,鼠标悬浮精灵上时鼠变小手
1542 0
Threejs使用精灵Sprite作为标签,鼠标悬浮精灵上时鼠变小手
|
1月前
ThreeJs添加拖动辅助线
这篇文章介绍了在Three.js中使用TransformControls组件来添加拖动辅助线,实现对3D模型在不同轴向上进行直观的拖动和平移操作。
63 0
|
1月前
|
JavaScript
ThreeJs通过DragControls实现物体拖动
这篇文章详细讲解了如何在Three.js中使用DragControls实现3D物体的鼠标拖动功能。
85 1
ThreeJs通过DragControls实现物体拖动
|
5月前
|
图形学
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
80 1
Photoshop制作漂亮白色荧光文字图片
Photoshop制作漂亮白色荧光文字图片
73 0
在RPA中实现拼图滑块
在RPA中实现拼图滑块
90 2
拼图滑块
拼图滑块
73 1
|
前端开发
【CSS动画05--闪亮的玻璃图标悬浮效果】
【CSS动画05--闪亮的玻璃图标悬浮效果】
|
搜索推荐 图形学
透明度和透明贴图制作玻璃水杯
模型透明度是控制整个模型的透明度属性,而透明贴图是一种贴图技术,用于控制模型表面每个像素的透明度级别。透明贴图可以与模型的透明度属性结合使用,以实现更复杂和精细的透明效果。通过调整透明贴图的透明度通道,可以实现模型表面不同部分的个性化透明度设置。
144 0
下一篇
无影云桌面