欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS實現(xiàn)抽屜效果

 更新時間:2020年02月22日 07:43:00   作者:LayneCheung  
這篇文章主要為大家詳細介紹了iOS實現(xiàn)抽屜效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了iOS實現(xiàn)抽屜效果的具體代碼,供大家參考,具體內(nèi)容如下

抽屜效果:

#import "DragerViewController.h"

#define screenW [UIScreen mainScreen].bounds.size.width

@interface DragerViewController ()

@property (nonatomic, weak) UIView *leftV;
@property (nonatomic, weak) UIView *rightV;
@property (nonatomic, weak) UIView *mainV;

@end

@implementation DragerViewController

- (void)viewDidLoad {
 [super viewDidLoad];

 //添加子控件
 [self setUp];


 //添加手勢
 UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];

 [self.mainV addGestureRecognizer:pan];


 //給控制器的View添加點按手勢
 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap)];
 [self.view addGestureRecognizer:tap];
}

- (void)tap{
 //讓MainV復位

 [UIView animateWithDuration:0.5 animations:^{
 self.mainV.frame = self.view.bounds;
 }];

}



#define targetR 275
#define targetL -275
- (void)pan:(UIPanGestureRecognizer *)pan{

 //獲取偏移量
 CGPoint transP = [pan translationInView:self.mainV];
 //為什么不使用transform,是因為我們還要去修改高度,使用transform,只能修改,x,y
 //self.mainV.transform = CGAffineTransformTranslate(self.mainV.transform, transP.x, 0);

 self.mainV.frame = [self frameWithOffsetX:transP.x];
 //判斷拖動的方向
 if(self.mainV.frame.origin.x > 0){
 //向右
 self.rightV.hidden = YES;
 }else if(self.mainV.frame.origin.x < 0){
 //向左
 self.rightV.hidden = NO;
 }

 //當手指松開時,做自動定位.
 CGFloat target = 0;
 if (pan.state == UIGestureRecognizerStateEnded) {

 if (self.mainV.frame.origin.x > screenW * 0.5 ) {
  //1判斷在右側
  //當前View的x有沒有大于屏幕寬度的一半,大于就是在右側
  target = targetR;
 }else if(CGRectGetMaxX(self.mainV.frame) < screenW * 0.5){
  //2.判斷在左側
  //當前View的最大的x有沒有小于屏幕寬度的一半,小于就是在左側
  target = targetL;
 }


 //計算當前mainV的frame.
 CGFloat offset = target - self.mainV.frame.origin.x;
 [UIView animateWithDuration:0.5 animations:^{

  self.mainV.frame = [self frameWithOffsetX:offset];
 }];


 }


 //復位
 [pan setTranslation:CGPointZero inView:self.mainV];

}

#define maxY 100
//根據(jù)偏移量計算MainV的frame
- (CGRect)frameWithOffsetX:(CGFloat)offsetX {

 NSLog(@"offsetX===%f",offsetX);

 CGRect frame = self.mainV.frame;
 NSLog(@"x====%f",frame.origin.x);
 frame.origin.x += offsetX;

 //當拖動的View的x值等于屏幕寬度時,maxY為最大,最大為100
 // 375 * 100 / 375 = 100

 //對計算的結果取絕對值
 CGFloat y = fabs( frame.origin.x * maxY / screenW);
 frame.origin.y = y;


 //屏幕的高度減去兩倍的Y值
 frame.size.height = [UIScreen mainScreen].bounds.size.height - (2 * frame.origin.y);

 return frame;
}


- (void)setUp{

 //leftV
 UIView *leftV = [[UIView alloc] initWithFrame:self.view.bounds];
 leftV.backgroundColor = [UIColor blueColor];
 self.leftV = leftV;
 [self.view addSubview:leftV];
 //rightV
 UIView *rightV = [[UIView alloc] initWithFrame:self.view.bounds];
 rightV.backgroundColor = [UIColor greenColor];
 self.rightV = rightV;
 [self.view addSubview:rightV];
 //mianV
 UIView *mainV = [[UIView alloc] initWithFrame:self.view.bounds];
 mainV.backgroundColor = [UIColor redColor];
 self.mainV = mainV;
 [self.view addSubview:mainV];
}

@end

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • iOS中長條藍色按鈕(button)實現(xiàn)代碼

    iOS中長條藍色按鈕(button)實現(xiàn)代碼

    本文通過實例代碼給大家介紹了iOS中長條藍色按鈕(button)實現(xiàn)方法,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-08-08
  • iOS藍牙開發(fā)數(shù)據(jù)實時傳輸

    iOS藍牙開發(fā)數(shù)據(jù)實時傳輸

    這篇文章主要為大家詳細介紹了iOS藍牙開發(fā)數(shù)據(jù)實時傳輸,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • iOS中setValue和setObject的區(qū)別詳解

    iOS中setValue和setObject的區(qū)別詳解

    setObject:ForKey: 是NSMutableDictionary特有的;setValue:ForKey:是KVC的主要方法。接下來通過本文給大家分享iOS中setValue和setObject的區(qū)別,需要的朋友參考下
    2017-02-02
  • 通過UIKit坐標系來全面掌握iOS中的UIScrollView組件

    通過UIKit坐標系來全面掌握iOS中的UIScrollView組件

    iOS開發(fā)套件中的UIScrollView組件十分強大,不僅是滾動,縮放操作也能夠控制自如,其核心當然是坐標軸上的控制,下面就通過UIKit坐標系來全面掌握iOS中的UIScrollView組件
    2016-05-05
  • iOS實現(xiàn)簡單的二級菜單效果

    iOS實現(xiàn)簡單的二級菜單效果

    這篇文章給大家主要介紹的是利用iOS如何實現(xiàn)簡單的菜單效果,文中給出了詳細的示例代碼,而且實現(xiàn)的比較簡單,適合新人學習使用。感興趣的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • 淺談iOS關于頭文件的導入問題

    淺談iOS關于頭文件的導入問題

    本篇文章主要介紹了淺談iOS關于頭文件的導入問題,具有一定的參考價值,有興趣的可以了解一下。
    2017-04-04
  • 如何在自己的電腦上配置APNS推送環(huán)境

    如何在自己的電腦上配置APNS推送環(huán)境

    這篇文章主要介紹了如何在自己的電腦上配置APNS推送環(huán)境的相關資料,需要的朋友可以參考下
    2015-11-11
  • 詳談iOS 位置權限彈出框閃現(xiàn)的問題

    詳談iOS 位置權限彈出框閃現(xiàn)的問題

    下面小編就為大家?guī)硪黄斦刬OS 位置權限彈出框閃現(xiàn)的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 解決Alamofire庫在iOS7下設置Head無效的問題

    解決Alamofire庫在iOS7下設置Head無效的問題

    本文主要介紹Alamofire庫在iOS下設置Head,這里通過代碼實例解決不同版本的IOS系統(tǒng)出現(xiàn)的問題,有需要的小伙伴可以參考下
    2016-07-07
  • iOS利用UIBezierPath + CAAnimation實現(xiàn)路徑動畫效果

    iOS利用UIBezierPath + CAAnimation實現(xiàn)路徑動畫效果

    在iOS開發(fā)中,制作動畫效果是最讓開發(fā)者享受的環(huán)節(jié)之一,這篇文章主要給大家介紹了關于iOS利用UIBezierPath + CAAnimation實現(xiàn)路徑動畫效果的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-10-10

最新評論