iOS開發(fā)中TabBar再次點擊實現(xiàn)刷新效果
需求
之前已經(jīng)實現(xiàn)了自定義TabBar,如圖所示:
自定義TabBar.jpeg
現(xiàn)在需要實現(xiàn)一個類似今日頭條TabBar的功能 —— 如果繼續(xù)點擊當前TabBar的選中項,那么該界面需要刷新UITableView。
分析
既然已經(jīng)自定義了TabBar,那么最簡單的就是在自定義中給TabBar中需要的UITabBarButton添加事件 —— 點擊就發(fā)送通知,并且將當前的索引傳出去。對應的界面監(jiān)聽通知,拿到索引比對,如果和當前索引一致,就執(zhí)行對應的操作。
實現(xiàn)
1. 自定義TabBar的layoutSubviews中綁定事件
- (void)layoutSubviews
{
[super layoutSubviews];
for (UIButton * tabBarButton in self.subviews) {
if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) {
//監(jiān)聽tabbar的點擊
//綁定tag 標識
tabBarButton.tag = index;
//監(jiān)聽tabbar的點擊
[tabBarButton addTarget:self action:@selector(tabBarButtonClick:) forControlEvents:UIControlEventTouchUpInside];
}
}
}
2. 監(jiān)聽事件,發(fā)送通知
- (void)tabBarButtonClick:(UIControl *)tabBarBtn{
//判斷當前按鈕是否為上一個按鈕
//再次點擊同一個item時發(fā)送通知出去 對應的VC捕獲并判斷
if (self.previousClickedTag == tabBarBtn.tag) {
[[NSNotificationCenter defaultCenter] postNotificationName:
@"DoubleClickTabbarItemNotification" object:@(tabBarBtn.tag)];
}
self.previousClickedTag = tabBarBtn.tag;
}
對應的UIViewController監(jiān)聽通知
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(doubleClickTab:) name:@"DoubleClickTabbarItemNotification" object:nil];
}
3. 監(jiān)聽到通知,比對后執(zhí)行操作
-(void)doubleClickTab:(NSNotification *)notification{
//這里有個坑 就是直接用NSInteger接收會有問題 數(shù)字不對
//因為上個界面?zhèn)鬟^來的時候封裝成了對象,所以用NSNumber接收后再取值
NSNumber *index = notification.object;
if ([index intValue] == 1) {
//刷新
}
}
最終的效果請看:

總結(jié)
以上所述是小編給大家介紹的iOS開發(fā)中TabBar再次點擊實現(xiàn)刷新效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
Apple?Watch?App?Lifecycle應用開發(fā)
這篇文章主要為大家介紹了Apple?Watch?App?Lifecycle應用開發(fā)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
iOS中利用CoreAnimation實現(xiàn)一個時間的進度條效果
在iOS中實現(xiàn)進度條通常都是通過不停的設置progress來完成的,這樣的進度條適用于網(wǎng)絡加載(上傳下載文件、圖片等)。下面通過本文給大家介紹iOS中利用CoreAnimation實現(xiàn)一個時間的進度條,需要的的朋友參考下吧2017-09-09
iOS App開發(fā)中擴展RCLabel組件進行基于HTML的文本布局
RCLabel組件基于CoreText框架,可以將HTML標記的文本內(nèi)容轉(zhuǎn)為富文本視圖,這里我們就來解讀如何在iOS App開發(fā)中擴展RCLabel組件進行基于HTML的文本布局:2016-07-07

