侧滑

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

//
//  ViewController.m
//  CeHua
//
//  Created by mac on 15-4-14.
//  Copyright (c) 2015年 mac. All rights reserved.
//

#import "ViewController.h"
#import "LeftViewController.h"
#import "RightViewController.h"

//取屏幕寬高
#define KscreenWidth [UIScreen mainScreen].bounds.size.width
#define KscreenHeigh [UIScreen mainScreen].bounds.size.height

@interface ViewController (){

    CGPoint _point0;//初始point
    
    LeftViewController *_left;
    RightViewController *_right;

}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    self.view.backgroundColor = [UIColor orangeColor];
    
    //初始化左右視圖
    _left = [[LeftViewController alloc] init];
    _left.view.frame = CGRectMake(-200, 0,KscreenWidth, KscreenHeigh);
    _left.view.alpha = 0;
    
    _right = [[RightViewController alloc] init];
    _right.view.frame = CGRectMake((KscreenWidth - (KscreenWidth/4)), 0, KscreenWidth, KscreenHeigh);
    _right.view.alpha = 0;
    
    /*
     
     第二种方式
     
     在这里不设置frame值  把左右视图当做子视图加到主视图上 当触摸结束时改变左右视图的frame值
     
     第三种方式
     
     把左右控制器当子控制器加到主控制器上 触摸结束时改变frame值并把视图插入主界面
     */
    
}


//觸摸開始時的事件
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    //取觸摸點座標
    UITouch *touch = [touches anyObject];
    _point0 = [touch locationInView:self.view];
    UIImageView *iamgeView = [[UIImageView alloc] initWithFrame:CGRectMake(_point0.x, _point0.y, 20, 20)];
    iamgeView.image = [UIImage imageNamed:@"0.jpg"];
    [self.view addSubview:iamgeView];
    
    [UIView animateWithDuration:.75
                     animations:^{
                         iamgeView.alpha = 0;
                     } completion:^(BOOL finished) {
                         [iamgeView removeFromSuperview];
                     }];
    
}

//手指移動時的時間
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{

    UITouch *touch = [touches anyObject];
    CGPoint point = [touch locationInView:self.view];
    UIImageView *iamgeView = [[UIImageView alloc] initWithFrame:CGRectMake(point.x, point.y, 20, 20)];
    iamgeView.image = [UIImage imageNamed:@"0.jpg"];
    [self.view addSubview:iamgeView];

    
    [UIView animateWithDuration:.5
                     animations:^{
                         iamgeView.alpha = 0;
                     } completion:^(BOOL finished) {
                         [iamgeView removeFromSuperview];
                     }];

    
}


//觸摸結束時的事件
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{


    //判斷左右視圖出現的時機
    UITouch *touch = [touches anyObject];
    CGPoint point = [touch locationInView:self.view];
    
    if (_left.view == nil) {
        
        _left = [[LeftViewController alloc] init];
        _left.view.frame = CGRectMake(-200, 0,KscreenWidth, KscreenHeigh);
        _left.view.alpha = 0;

        
    }
    if (_right.view == nil) {
        
        
        _right = [[RightViewController alloc] init];
        _right.view.frame = CGRectMake((KscreenWidth - (KscreenWidth / 4)), 0, KscreenWidth, KscreenHeigh);
        _right.view.alpha = 0;

    }
    
    if (200 < (point.x - _point0.x)) {
        
        
        [UIView animateWithDuration:.75
                         animations:^{
                             
                             if (_right.view.alpha == 0) {
                                 
                                 _left.view.alpha = 1;
                                 [self.view addSubview:_left.view];
                             }
                             
                             _right.view.alpha = 0;
                             [_right.view removeFromSuperview];
                             
                         } completion:^(BOOL finished) {
                             
                         }];

        
    }else if (200 < (_point0.x - point.x)){
    
    
        [UIView animateWithDuration:.75
                         animations:^{
                             
                             if (_left.view.alpha == 0) {
                                 
                                 _right.view.alpha = 1;
                                 [self.view addSubview:_right.view];
                                 
                             }
                             
                             _left.view.alpha = 0;
                             [_left.view removeFromSuperview];
                             
                             
                         } completion:^(BOOL finished) {
                             
                         }];
    
    }

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end