国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

(導航控制器view)全屏幕滑動實現(xiàn)pop效果

2019-11-14 18:32:29
字體:
供稿:網(wǎng)友

  看到現(xiàn)在app 中越來越流行的手勢滑動實現(xiàn)pop效果,心里很是癢癢躍躍欲試,經(jīng)過多方查看資料,終于在簡書上找到了詳細的實現(xiàn)方案: 

輕松學習之二——iOS利用Runtime自定義控制器POP手勢動畫

經(jīng)過修改實現(xiàn)了簡單的(自定義導航控制器)手勢滑動實現(xiàn)pop返回效果:

1.先打印了導航控制器的interactivePopGestureRecognizer,log結(jié)果如下:

<UIScreenEdgePanGestureRecognizer: 0x7fe5f1579ce0; state = Possible; delaysTouchesBegan = YES; view = <UILayoutContainerView 0x7fe5f1567ea0>; target= <(action=handleNavigationTransition:, target=<_UINavigationInteractiveTransition

2.自定義UipanGestureRecognizer,移花接木到該手勢的target和action;action好處理,但是target的活得用runtime時可以拿到,但過程略復雜,

打印interactivePopGestureRecognizer.delegate;發(fā)現(xiàn)正好也是_UINavigationInteractiveTransition,所以問題解決:

    id target = self.interactivePopGestureRecognizer.delegate;

    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:target    action:NSSelectorFromString(@"handleNavigationTransition:")];

3.測試發(fā)現(xiàn)如果當前導航控制器的自控制器只有一個的時候,拖拽手勢會發(fā)生bug,這時就需要腹瀉pan手勢的

-(BOOL)gestureRecognizerShouldBegin:來決定手勢操作是否起作用:

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer

{

    return self.childViewControllers.count==1?NO :YES;

}

 

 4.附上github上forkingdog的更加完美的分類實現(xiàn)方法:

 

https://github.com/forkingdog/UITableView-FDTemplateLayoutCell

 

TIP:相關(guān)bug小提示,如果自定了導航控制器的自控制器的leftBarButtonItem,可能會引發(fā)邊緣滑動pop效果的失靈,是由于

  self.interactivePopGestureRecognizer.delegate被滯空的原因

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 讷河市| 恩平市| 乐平市| 遵义县| 望奎县| 易门县| 江北区| 桐柏县| 东方市| 洪湖市| 中宁县| 微博| 梅州市| 黑水县| 高雄县| 玉屏| 江都市| 梁河县| 临澧县| 浦北县| 岚皋县| 乐清市| 迁西县| 鄯善县| 南江县| 会东县| 盐山县| 陆丰市| 眉山市| 永吉县| 余江县| 林州市| 景泰县| 舒兰市| 阿鲁科尔沁旗| 湘西| 宝鸡市| 古田县| 堆龙德庆县| 顺昌县| 宜兰县|