亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS實現左右拖動抽屜效果

2020-07-26 03:27:07
字體:
來源:轉載
供稿:網友

本文實例介紹了iOS實現左右拖動抽屜效果,具體內容如下

利用了觸摸事件滑動 touchesMoved: 來觸發左右視圖的出現和消失 利用loadView方法中添加view 在self.view載入前就把 左右中View都設置好frame 每一個方法都由單獨的功能。

#import "DarwViewController.h"@interface DarwViewController ()@property (nonatomic, weak) UIView *leftView;@property (nonatomic, weak) UIView *rightView;@property (nonatomic, weak) UIView *mainView;/** * 動畫是否進行 */@property (nonatomic ,assign) BOOL animating; @end @implementation DarwViewController- (void)viewDidLoad { [super viewDidLoad];}  -(void)loadView{ self.view = [[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds]; //左邊view UIView *leftView = [[UIView alloc]initWithFrame:self.view.frame]; [self.view addSubview:leftView]; leftView.backgroundColor= [UIColor redColor]; self.leftView = leftView;   //右邊View UIView *rightView = [[UIView alloc]initWithFrame:self.view.frame]; [self.view addSubview:rightView]; rightView.backgroundColor= [UIColor blueColor]; self.rightView = rightView;   //主頁面 UIView *mainView = [[UIView alloc]initWithFrame:self.view.frame]; [self.view addSubview:mainView]; mainView.backgroundColor= [UIColor yellowColor]; self.mainView = mainView;     //KVO監聽 [self.mainView addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil];}/** * KVO回調方法 當mainView Frame值改變時觸發 * * @param keyPath <#keyPath description#> * @param object <#object description#> * @param change <#change description#> * @param context <#context description#> */-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{ if (self.animating) return; //如果mainView正在動畫 就不執行 if (self.mainView.frame.origin.x > 0 ) {  //X > 0 就隱藏右邊View 顯示左邊View  self.rightView.hidden = YES;  self.leftView.hidden = NO; } else if (self.mainView.frame.origin.x < 0) {  //X < 0 就隱藏左邊View 顯示右邊VIew  self.leftView.hidden = YES;  self.rightView.hidden = NO; }}#pragma mark -- 觸摸事件-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ //獲得觸摸對象 UITouch *touch = [touches anyObject];   //獲得當前觸摸點 CGPoint currentPoint = [touch locationInView:self.view]; //獲得上一個觸摸點 CGPoint previousPoint = [touch previousLocationInView:self.view];   //計算x方向的偏移量 CGFloat offsetX = currentPoint.x - previousPoint.x;// 根據x的偏移量計算y的偏移量 self.mainView.frame = [self rectWithOffsetX:offsetX];  }#define screenW [UIScreen mainScreen].bounds.size.width#define screenH [UIScreen mainScreen].bounds.size.height/** * 計算主視圖的frame * * @param offsetX x的偏移量 * * @return 偏移后新的frame */- (CGRect ) rectWithOffsetX:(CGFloat )offsetX{ //Y軸的偏移量 CGFloat offsetY = (screenH *1/5) * (offsetX/screenW);   //比例 :(用于寬高的縮放) CGFloat scale = (screenH - offsetY *2) / screenH; if (self.mainView.frame.origin.x < 0 ) {  //如果x是負數 及左邊View要顯示  //比例就要設為比1小  scale = 2 - scale; } //獲取當前mainView的frame CGRect frame = self.mainView.frame;   //重新設置mainView的frame值 frame.size.width = frame.size.width *scale >screenW ? screenW : frame.size.width *scale;   frame.size.height = frame.size.height *scale >screenH ? screenH :frame.size.height *scale;   frame.origin.x += offsetX; frame.origin.y =(screenH - frame.size.height)*0.5; //返回偏移后新的frame return frame;}#define maxRightX (screenW *0.8)#define maxLeftX (-screenW *0.6)-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ CGFloat targetX = 0; //如果松手的那一下 當前mainVIew的x大于屏幕的一半 if (self.mainView.frame.origin.x > screenW * 0.5) {  //向右邊定位  targetX = maxRightX; } //如果松手的那一下 當前mainVIew的最大X值小于屏幕的一半 else if (CGRectGetMaxX(self.mainView.frame) < screenW *0.5) {  //向左邊定位  targetX = maxLeftX; }   //計算偏移量 CGFloat offsetX = targetX -self.mainView.frame.origin.x;   self.animating = YES;   [UIView animateWithDuration:0.4 animations:^{  if (targetX == 0)  {   //如果targetX==0 復位   self.mainView.frame = self.view.frame;  }  else  {   //如果targetX != 0 那就到指定位置   self.mainView.frame = [self rectWithOffsetX:offsetX];  } } completion:^(BOOL finished) {  self.animating = NO; }];   }@end

以上就是本文的全部內容,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男人天堂手机在线| 亚洲成色777777女色窝| 96国产粉嫩美女| 国内自拍欧美激情| 欧美色视频日本版| 日韩欧美在线播放| 亚洲欧美日韩区| 在线视频精品一| 欧美激情视频网| 91精品久久久久| 97超级碰碰人国产在线观看| 97在线日本国产| 成人福利视频在线观看| 91美女福利视频高清| 国产精品91在线观看| 欧美猛少妇色xxxxx| 亚洲欧洲国产伦综合| 亚洲影视中文字幕| 91精品国产99久久久久久| 国产精品海角社区在线观看| 成人亚洲激情网| 欧美日韩综合视频| 午夜精品理论片| 最近2019免费中文字幕视频三| 日韩欧美999| 亚洲国产一区自拍| 亚洲国产成人在线视频| 午夜免费日韩视频| 久久影院免费观看| 色在人av网站天堂精品| 日本精品久久久久影院| 一本色道久久88亚洲综合88| 日韩欧美精品在线观看| 午夜免费久久久久| 亚洲激情国产精品| 亚洲v日韩v综合v精品v| 一区二区欧美激情| 亚洲第一区在线| 国产视频精品va久久久久久| 色综合导航网站| 国产在线精品一区免费香蕉| 一区二区三区视频观看| 亚洲人线精品午夜| 亚洲人成在线一二| 在线观看免费高清视频97| 久久久久久久香蕉网| 亚洲精品国产福利| 国产成人一区二| 国产欧美精品久久久| 性欧美激情精品| 日韩免费电影在线观看| 日韩欧美中文第一页| 国产日韩欧美日韩| 欧美激情videoshd| 91精品在线观看视频| 日韩精品在线私人| 国产精品亚洲自拍| 久久精品2019中文字幕| 2019中文字幕在线免费观看| 国产精品色午夜在线观看| 亚洲欧美激情另类校园| 欧美精品久久久久a| 国内精品久久久久久久久| 日韩精品亚洲精品| 日韩美女视频中文字幕| 68精品久久久久久欧美| 国产精品青青在线观看爽香蕉| www欧美日韩| 日韩在线精品一区| 亚洲欧美制服综合另类| 亚洲a在线观看| 国产精品视频白浆免费视频| 性欧美xxxx交| 在线日韩日本国产亚洲| 蜜臀久久99精品久久久久久宅男| 日韩欧美成人精品| 欧美大全免费观看电视剧大泉洋| 日韩视频免费大全中文字幕| 国产精品久久久亚洲| 亚洲国产私拍精品国模在线观看| 欧美成人免费va影院高清| 欧美日韩福利在线观看| 国产视频丨精品|在线观看| 91亚洲精品在线观看| 日韩电影视频免费| 国产视频999| 国产成人av在线| 欧美日韩国产丝袜美女| 亚洲一区二区黄| 欧美激情亚洲精品| 日韩精品在线视频| 成人免费xxxxx在线观看| 91老司机精品视频| 91精品国产色综合久久不卡98口| 亚洲aa在线观看| 久久精视频免费在线久久完整在线看| 91久久久在线| 57pao成人国产永久免费| 8x海外华人永久免费日韩内陆视频| 国产大片精品免费永久看nba| 久久国产精品久久久久久| 亚洲人成电影在线观看天堂色| 国产一区二区三区精品久久久| 国产精品福利小视频| 日韩视频中文字幕| 久久精品国产亚洲一区二区| 国产欧美精品一区二区三区-老狼| 青青青国产精品一区二区| 欧美黄色片免费观看| 精品偷拍一区二区三区在线看| 欧美大尺度在线观看| 2018国产精品视频| 国产精品人成电影| 久久久久女教师免费一区| 欧美视频在线免费| 在线午夜精品自拍| 97在线视频精品| 国产精品成人国产乱一区| 国产精品爱啪在线线免费观看| 日本一区二三区好的精华液| 日韩高清欧美高清| 久久久久久亚洲精品中文字幕| 欧美三级免费观看| 日本一本a高清免费不卡| 在线观看精品自拍私拍| 国产91免费看片| 免费99精品国产自在在线| 精品久久久久国产| 欧美电影免费观看电视剧大全| 国产成人福利网站| 国产日韩综合一区二区性色av| 国产97在线|亚洲| 欧美在线观看一区二区三区| 欧美一级大片视频| 国产精品一区二区久久精品| 成人性生交大片免费看视频直播| 欧美成人网在线| 中日韩美女免费视频网址在线观看| 日韩亚洲一区二区| 欧美一级片久久久久久久| 国产欧美一区二区白浆黑人| 久久99精品视频一区97| 亚洲欧美日韩在线高清直播| 久久69精品久久久久久国产越南| 欧美日韩爱爱视频| 乱亲女秽乱长久久久| 久久久久久12| 欧美性猛交xxxx富婆弯腰| 亚洲第一二三四五区| 亚洲xxxx视频| 久久亚洲精品国产亚洲老地址| 亚洲精品色婷婷福利天堂| 日本欧美在线视频| 97久久国产精品| 97久久久免费福利网址| 日韩欧美国产中文字幕| 国产精品久久久久久久久久| 亚洲自拍偷拍一区| 久久91精品国产91久久久| 日韩精品在线私人| 国模精品视频一区二区| 欧美成人精品在线| 亚洲日本欧美中文幕| 亚洲午夜未满十八勿入免费观看全集|