最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS實現(xiàn)側(cè)滑欄效果

 更新時間:2016年08月10日 11:28:24   作者:YouXianMing  
這篇文章主要為大家詳細(xì)介紹了iOS實現(xiàn)側(cè)滑欄效果,點擊側(cè)邊拉出相應(yīng)菜單,感興趣的小伙伴們可以參考一下

效果

 

源碼:https://github.com/YouXianMing/iOS-Project-Examples 中的 SideViewController 

//
// ViewController.m
// SideViewController
//
// Created by YouXianMing on 16/6/6.
// Copyright © 2016年 YouXianMing. All rights reserved.
//

#import "ViewController.h"
#import "LeftViewController.h"
#import "MainViewController.h"
#import "UIView+SetRect.h"

@interface ViewController () {
 
 CGFloat _screenWidth;
}

@property (nonatomic, strong) UIPanGestureRecognizer *panGesture;
@property (nonatomic)   CGPoint     panBeginPoint;

@property (nonatomic, strong) LeftViewController  *leftViewController;
@property (nonatomic, strong) UIView     *leftView;

@property (nonatomic, strong) MainViewController  *mainViewController;
@property (nonatomic, strong) UIView     *mainView;

@end

@implementation ViewController

- (void)viewDidLoad {
 
 [super viewDidLoad];
 
 // Init some value.
 _screenWidth = Width;
 
 // Add backgroundView.
 UIImageView *backgroundView = [[UIImageView alloc] initWithFrame:self.view.bounds];
 backgroundView.image  = [UIImage imageNamed:@"back"];
 [self.view addSubview:backgroundView];
 
 // LeftViewController
 self.leftViewController = [[LeftViewController alloc] init];
 self.leftView   = self.leftViewController.view;
 [self.view addSubview:self.leftView];
 
 // MainViewController
 self.mainViewController = [[MainViewController alloc] init];
 self.mainView   = self.mainViewController.view;
 [self.view addSubview:self.mainView];
 
 // Pan gesture.
 self.panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureEvent:)];
 [self.mainView addGestureRecognizer:self.panGesture];
}

- (void)panGestureEvent:(UIPanGestureRecognizer *)gesture {
 
 CGPoint translation = [gesture translationInView:gesture.view];
 CGPoint velocity = [gesture velocityInView:gesture.view];
 
 CGFloat gap    = _screenWidth / 3.f * 2;
 CGFloat sensitivePosition = _screenWidth / 2.f;
 
 if (velocity.x < 0 && _mainView.x <= 0) {
  
  // 過濾掉向左側(cè)滑過頭的情形
  _mainView.x = 0.f;
  
 } else {
  
  if (gesture.state == UIGestureRecognizerStateBegan) {
   
   // 開始
   _panBeginPoint = translation;
   
   if (_mainView.x >= sensitivePosition) {
    
    _panBeginPoint.x -= gap;
   }
   
  } else if (gesture.state == UIGestureRecognizerStateChanged) {
   
   // 值變化
   _mainView.x = translation.x - _panBeginPoint.x;
   
   if (_mainView.x <= 0) {
    
    // 過濾掉向左側(cè)滑過頭的情形
    _mainView.x = 0.f;
   }
   
  } else if (gesture.state == UIGestureRecognizerStateEnded) {
   
   // 結(jié)束
   [UIView animateWithDuration:0.20f animations:^{
    
    _mainView.x >= sensitivePosition ? (_mainView.x = gap) : (_mainView.x = 0);
   }];
  }
 }
}

@end

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

相關(guān)文章

  • IOS中NSPredicate和NSRegularExpression校驗正則表達(dá)式區(qū)別

    IOS中NSPredicate和NSRegularExpression校驗正則表達(dá)式區(qū)別

    本文文章通過實例代碼給大家講述了在IOS開發(fā)中NSPredicate和NSRegularExpression校驗正則表達(dá)式區(qū)別,需要的朋友趕快學(xué)習(xí)下吧。
    2018-01-01
  • iOS中仿QQ側(cè)滑菜單功能

    iOS中仿QQ側(cè)滑菜單功能

    這篇文章主要介紹了iOS中仿QQ側(cè)滑菜單功能,在實現(xiàn)此功能之前,需要先了解UITabBarController的層級結(jié)構(gòu),具體實現(xiàn)思路大家可以參考下本文
    2017-07-07
  • IOS 開發(fā)之UISearchBar 詳解及實例

    IOS 開發(fā)之UISearchBar 詳解及實例

    這篇文章主要介紹了IOS 開發(fā)之UISearchBar 詳解及實例的相關(guān)資料,主要介紹 IOS UISearchBar的使用,附有實例代碼,需要的朋友可以參考下
    2016-12-12
  • 詳解iOS 多線程 鎖 互斥 同步

    詳解iOS 多線程 鎖 互斥 同步

    在iOS中有幾種方法來解決多線程訪問同一個內(nèi)存地址的互斥同步問題,本篇文章主要介紹了5中方法來解決問題,有興趣的可以了解一下。
    2016-12-12
  • iOS中UILabel text兩邊對齊的實現(xiàn)代碼

    iOS中UILabel text兩邊對齊的實現(xiàn)代碼

    本文通過一段實例代碼給大家介紹了ios中uilabel text兩邊對齊的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友參考下
    2017-01-01
  • IOS開發(fā)自定義view方法規(guī)范示例

    IOS開發(fā)自定義view方法規(guī)范示例

    這篇文章主要為大家介紹了IOS開發(fā)自定義view方法規(guī)范示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • iOS中狀態(tài)欄的基本使用方法匯總

    iOS中狀態(tài)欄的基本使用方法匯總

    在iOS開發(fā)過程中,經(jīng)常會設(shè)置狀態(tài)欄的樣式,所以下面這篇文章主要給大家介紹了關(guān)于iOS中狀態(tài)欄的基本使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-07-07
  • iOS實現(xiàn)時間顯示幾分鐘前,幾小時前以及剛剛的方法示例

    iOS實現(xiàn)時間顯示幾分鐘前,幾小時前以及剛剛的方法示例

    這篇文章主要介紹了如何利用iOS實現(xiàn)時間顯示是在幾小時前,幾分鐘前以及剛剛的格式,類似大家在qq空間和朋友圈微博看到的效果,文中給出了詳細(xì)的示例代碼,有需要的朋友們可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-01-01
  • IOS React Native FlexBox詳解及實例

    IOS React Native FlexBox詳解及實例

    這篇文章主要介紹了IOS React Native FlexBox詳解的相關(guān)資料,并附實例代碼,需要的朋友可以參考下
    2016-11-11
  • iOS overFullScreen與fullScreen區(qū)別分析

    iOS overFullScreen與fullScreen區(qū)別分析

    這篇文章主要介紹了iOS overFullScreen與fullScreen區(qū)別分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11

最新評論

新竹县| 新竹县| 新化县| 重庆市| 遵化市| 广西| 遵化市| 南华县| 攀枝花市| 海原县| 南华县| 隆尧县| 芜湖县| 祁连县| 武陟县| 大悟县| 天气| 寿宁县| 正宁县| 曲阳县| 宁河县| 兴隆县| 白山市| 四平市| 视频| 伊宁市| 扎赉特旗| 舒兰市| 体育| 丰顺县| 株洲市| 卢氏县| 中阳县| 贵州省| 陆川县| 娱乐| 新竹市| 江北区| 临沧市| 兰考县| 陇川县|