1. 程式人生 > >自定義導航控制器的滑動返回效果

自定義導航控制器的滑動返回效果

iOS自帶的左滑功能必須是在螢幕左側開始滑才會有滑動返回的效果,如果想實現拖動介面就可以滑動返回的效果則需要自定義了。 首先了解下系統自帶的導航控制器左滑效果的實現: 系統自帶的是返回滑動手勢是UIScreenEdgePanGestureRecognizer型別物件,從名字可以看出是作用區域是螢幕邊緣,系統自帶手勢的target物件是_UINavigationInteractiveTransition,呼叫的方法handleNavigationTransition

其次,自定義左滑功能,利用系統提供的target和呼叫的方法,自己給導航控制器的view新增pan滑動手勢。記得要先禁用系統的左滑功能

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    NSLog(@"%@",self.interactivePopGestureRecognizer.delegate);
    //1、禁用系統自帶的滑動返回功能
    self.interactivePopGestureRecognizer.enabled = NO;
    
    //2、獲取系統左滑的target
    id target = self.interactivePopGestureRecognizer.delegate;
     UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:target action:@selector(handleNavigationTransition:)];
    panGestureRecognizer.delegate = self;
    [self.view addGestureRecognizer:panGestureRecognizer];
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
    //判斷當前是不是導航控制器的第一層級控制器,如果是的話,返回手勢不觸發
    if (self.childViewControllers.count == 0) {
        return NO;
    }
    return YES;
}


相關推薦

定義導航控制器滑動返回效果

iOS自帶的左滑功能必須是在螢幕左側開始滑才會有滑動返回的效果,如果想實現拖動介面就可以滑動返回的效果則需要自定義了。 首先了解下系統自帶的導航控制器左滑效果的實現: 系統自帶的是返回滑動手勢是UIScreenEdgePanGestureRecognizer型別物件,從名字

定義導航欄的返回

UIImage *backButtonHomeImage = [[UIImage imageNamed:@"nav_back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 30, 0, 0)];

iOS 定義導航欄pop返回手勢,全屏右滑返回

- (void)viewDidLoad {     [superviewDidLoad]; //重新給interactivePopGestureRecognizer.delegate掛代理

微信小程式定義導航欄 navigation bar 返回鍵 首頁

微信小程式自定義導航欄(wx_custom_navigation_bar) 自定義返回鍵、首頁鍵,動態設定標題,響應式元件 版本號:1.0.0 作者:chen-yt github: https://github.com/chen-yt/wx_custom_navigation

[Xcode10 實際操作]三、檢視控制器-(7)UINavigationController定義導航按鈕

本文將演示設定導航按鈕的樣式,以及設定導航標題區域的樣式。 1 import UIKit 2 3 class FirstSubViewController: UIViewController { 4 5 override func viewDidLoad() { 6

Swift定義導航返回按鈕

如何去除swift系統自帶的導航欄返回按鈕?可以自定義返回按鈕 在swift中,怎麼替換系統自帶的導航欄返回按鈕?比如說我要替換成一張返回按鈕圖片,點選返回到上一頁 首先,看一下系統自帶的導航欄返回按鈕的樣式 從上面我們可以看到,導航欄返回處左邊是

Android 定義ViewPager的滑動切換頁面效果

先借用網上圖片效果 自定義效果最重要的一個方法就是 viewPager.setPageTransformer(boolean,PageTransformer) 這個方法就是設定viewpager的滑動效果的方法,裡面需要傳遞兩個引數:第一個引數傳true就行了

iOS開發之定義導航返回按鈕右滑返回手勢失效的解決---親測是有效的。

問題一:怎麼自定義leftItem問題二:為什麼系統自帶的右滑返回手勢失效問題三:怎麼解決這個失效問題3.怎麼解決這個失效問題 其實很簡單很簡單~只需要新增下面這一句程式碼即可self.navigationController.interactivePopGestureRe

Andriod 定義 RecyclerView 打造超強 Gallery效果 橫向滑動 完整例項原始碼

       Andriod 自定義 RecyclerView 打造超強 Gallery效果 橫向ListView 完整例項原始碼       大家好,一個RecyclerView 橫向滑動的效果是不是值得借鑑呢,下面我們來看看我做的效果: (記得匯入RecyclerVi

iOS開發之定義導航返回按鈕右滑返回手勢失效的解決

我相信針對每一個iOS開發者來說~除了根檢視控制器外~所有的介面通過導航欄push過去的介面都是可以通過右滑來返回上一個介面~其實~在很多應用和APP中~使用者已經習慣了這個功能~然而~作為開發者的我們~也並沒有為此做些什麼~因為我們在建立專案時~蘋果公司已經為我們都做好了~那麼~我們這期就來聊一聊這系統

iOS-定義導航欄後側滑返回功能失效

2016-03-17 iOS開發 文/煜寒了(簡書作者) 原文連結:http://www.jianshu.com/p/349636eb3fca iPhone有一個回退按鈕在所有的導航條上.這是一個簡單的沒有文字箭頭. 在一開始寫專案的時候,就要做好一個準備,導航欄是自定義還

Swift- 定義導航欄背景、標題和返回按鈕屬性

廢話少說,直接 看程式碼: //navigationBar的預設背景顏色 // UINavigationBar.appearance().tintColor = UIColor

IOS 開發筆記——定義導航返回鍵後如何恢復系統預設返回手勢

       在開發當中,我們不得不要將導航欄的左邊返回按鈕自定義成不同的樣式,但是一當我們自定義樣式後,系統預設的 pop 手勢就失效了,那麼我們該如何做呢?其實這個問題網上也有很多答案,但是每一個答案都非常坑,我都不得不吐槽一下了,老是將問題複雜化,不懂裝懂,最討厭這些

定義導航返回按鈕點選事件

開發中經常會遇到 點選導航欄返回按鈕時不想 pop 回上一級控制器,而是回到 某一級控制器 或者需要在pop回去的時候回傳一些資料,但檢視文件發現,系統並沒有給我們直接提供這樣的方法。 那麼我們先來分析如何獲取返回按鈕的點選事件。 返回按鈕在導航欄上,所以我

iOS定義導航欄,側滑返回卡死情況的解決辦法

側滑返回是iOS7新增的一個特性,如果自定義了導航欄,那麼側滑返回這個功能就會失效。雖然在自定義導航欄的viewDidLoad方法中新增self.interactivePopGestureRecognizer.delegate = (id)self;一行程式碼就

貓貓學iOS 之微博項目實戰(2)微博主框架-自己定義導航控制器NavigationController

點擊狀態 reat obj mar all func 返回 mutable point 貓貓分享,必須精品 原創文章。歡迎轉載。轉載請註明:翟乃玉的博客 地址:viewmode=contents">http://blog.csdn.net/u0133

Android定義View——實現水波紋效果類似剩余流量球

string 三個點 pre ber block span 初始化 move 理解 最近突然手癢就想搞個貝塞爾曲線做個水波紋效果玩玩,終於功夫不負有心人最後實現了想要的效果,一起來看下吧: 效果圖鎮樓 一:先一步一步來分解一下實現的過程 需要繪制一個正弦曲線(sin

利用echarts highcharts 實現定義地圖 關系圖效果 側邊3D柱形圖餅圖散點圖

技術 ges 散點圖 chart blog 餅圖 git 分享 charts github 地址: https://https://github.com/Gengshaoxuan/medataMap github 地址: https://https://github.c

微信小程式開發筆記2——定義導航欄元件

本文主要是熟悉微信小程式自定義元件的開發,以一個常見的導航欄(Tabbar)需求為例。 官方文件:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/ 首先我們先看一

小程式定義導航

將app.json裡的navigationStyle設定為navigationStyle:custom。可以在.wxss裡通過margin和padding來自定義導航欄。 例如在.wxml裡寫 <view class="nav">我是汽車維修技師</view>