国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 南雄市| 轮台县| 洮南市| 讷河市| 澜沧| 潮州市| 武义县| 阳泉市| 宜章县| 彩票| 达拉特旗| 武隆县| 安西县| 乌拉特后旗| 滨海县| 神农架林区| 南川市| 米林县| 大邑县| 邵阳县| 五家渠市| 托克逊县| 河池市| 大田县| 合水县| 金坛市| 咸丰县| 定日县| 台州市| 孝感市| 云浮市| 浏阳市| 清流县| 顺义区| 永和县| 洛隆县| 山东| 永泰县| 西昌市| 卓资县| 怀化市|