日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ios 点击出现另外一套tabbar_iOS开发中TabBar再次点击实现刷新效果

發布時間:2024/10/14 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios 点击出现另外一套tabbar_iOS开发中TabBar再次点击实现刷新效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求

之前已經實現了自定義TabBar,如圖所示:

自定義TabBar.jpeg

現在需要實現一個類似今日頭條TabBar的功能 —— 如果繼續點擊當前TabBar的選中項,那么該界面需要刷新UITableView。

分析

既然已經自定義了TabBar,那么最簡單的就是在自定義中給TabBar中需要的UITabBarButton添加事件 —— 點擊就發送通知,并且將當前的索引傳出去。對應的界面監聽通知,拿到索引比對,如果和當前索引一致,就執行對應的操作。

實現

1. 自定義TabBar的layoutSubviews中綁定事件

- (void)layoutSubviews

{

[super layoutSubviews];

for (UIButton * tabBarButton in self.subviews) {

if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) {

//監聽tabbar的點擊

//綁定tag 標識

tabBarButton.tag = index;

//監聽tabbar的點擊

[tabBarButton addTarget:self action:@selector(tabBarButtonClick:) forControlEvents:UIControlEventTouchUpInside];

}

}

}

2. 監聽事件,發送通知

- (void)tabBarButtonClick:(UIControl *)tabBarBtn{

//判斷當前按鈕是否為上一個按鈕

//再次點擊同一個item時發送通知出去 對應的VC捕獲并判斷

if (self.previousClickedTag == tabBarBtn.tag) {

[[NSNotificationCenter defaultCenter] postNotificationName:

@"DoubleClickTabbarItemNotification" object:@(tabBarBtn.tag)];

}

self.previousClickedTag = tabBarBtn.tag;

}

對應的UIViewController監聽通知

- (void)viewDidLoad {

[super viewDidLoad];

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(doubleClickTab:) name:@"DoubleClickTabbarItemNotification" object:nil];

}

3. 監聽到通知,比對后執行操作

-(void)doubleClickTab:(NSNotification *)notification{

//這里有個坑 就是直接用NSInteger接收會有問題 數字不對

//因為上個界面傳過來的時候封裝成了對象,所以用NSNumber接收后再取值

NSNumber *index = notification.object;

if ([index intValue] == 1) {

//刷新

}

}

最終的效果請看:

總結

以上所述是小編給大家介紹的iOS開發中TabBar再次點擊實現刷新效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

總結

以上是生活随笔為你收集整理的ios 点击出现另外一套tabbar_iOS开发中TabBar再次点击实现刷新效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。