231 lines
8.5 KiB
Objective-C
231 lines
8.5 KiB
Objective-C
//
|
|
// TLDiscoverViewController.m
|
|
// TLChat
|
|
//
|
|
// Created by 李伯坤 on 2017/7/6.
|
|
// Copyright © 2017年 李伯坤. All rights reserved.
|
|
//
|
|
|
|
#import "TLDiscoverViewController.h"
|
|
#import "TLMomentsViewController.h"
|
|
#import "TLScanningViewController.h"
|
|
#import "TLShakeViewController.h"
|
|
#import "TLBottleViewController.h"
|
|
#import "TLGameViewController.h"
|
|
#import "TLGameViewController.h"
|
|
|
|
#import "TLMenuItem.h"
|
|
|
|
typedef NS_ENUM(NSInteger, TLDiscoverSectionTag) {
|
|
TLDiscoverSectionTagMoments,
|
|
TLDiscoverSectionTagFounction,
|
|
TLDiscoverSectionTagStudy,
|
|
TLDiscoverSectionTagSocial,
|
|
TLDiscoverSectionTagLife,
|
|
TLDiscoverSectionTagProgram,
|
|
};
|
|
|
|
typedef NS_ENUM(NSInteger, TLDiscoverCellTag) {
|
|
TLDiscoverCellTagMoments, // 好友圈
|
|
TLDiscoverCellTagScaner, // 扫一扫
|
|
TLDiscoverCellTagShake, // 摇一摇
|
|
TLDiscoverCellTagRead, // 看一看
|
|
TLDiscoverCellTagSearch, // 搜一搜
|
|
TLDiscoverCellTagNearby, // 附近的人
|
|
TLDiscoverCellTagBottle, // 漂流瓶
|
|
TLDiscoverCellTagShopping, // 购物
|
|
TLDiscoverCellTagGame, // 游戏
|
|
TLDiscoverCellTagProgram, // 小程序
|
|
};
|
|
|
|
@implementation TLDiscoverViewController
|
|
|
|
#pragma mark - # Life Cycle
|
|
- (id)init
|
|
{
|
|
if (self = [super init]) {
|
|
initTabBarItem(self.tabBarItem, LOCSTR(@"发现"), @"tabbar_discover", @"tabbar_discoverHL");
|
|
[self.tabBarItem setBadgeValue:@""];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)loadView
|
|
{
|
|
[super loadView];
|
|
|
|
[self.navigationItem setTitle:LOCSTR(@"发现")];
|
|
[self loadMenus];
|
|
}
|
|
|
|
- (void)didReceiveMemoryWarning
|
|
{
|
|
[super didReceiveMemoryWarning];
|
|
|
|
self.momentsVC = nil;
|
|
}
|
|
|
|
#pragma mark - # UI
|
|
- (void)loadMenus
|
|
{
|
|
@weakify(self);
|
|
self.clear();
|
|
|
|
// 好友圈
|
|
{
|
|
NSInteger sectionTag = TLDiscoverSectionTagMoments;
|
|
self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(15, 0, 0, 0));
|
|
TLMenuItem *moments = createMenuItem(@"discover_album", LOCSTR(@"朋友圈"));
|
|
[moments setRightIconURL:@"http://i01.pic.sogou.com/23112449ac395e72" withRightIconBadge:YES];
|
|
self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(moments).selectedAction(^ (TLMenuItem *data) {
|
|
@strongify(self);
|
|
if (!self.momentsVC) {
|
|
self.momentsVC = [[TLMomentsViewController alloc] init];
|
|
}
|
|
PushVC(self.momentsVC);
|
|
});
|
|
}
|
|
|
|
// 功能
|
|
{
|
|
NSInteger sectionTag = TLDiscoverSectionTagFounction;
|
|
self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0));
|
|
// 扫一扫
|
|
self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(createMenuItem(@"discover_scaner", LOCSTR(@"扫一扫"))).selectedAction(^ (TLMenuItem *data) {
|
|
@strongify(self);
|
|
TLScanningViewController *scannerVC = [[TLScanningViewController alloc] init];
|
|
PushVC(scannerVC);
|
|
});
|
|
// 摇一摇
|
|
self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(createMenuItem(@"discover_shake", LOCSTR(@"摇一摇"))).selectedAction(^ (TLMenuItem *data) {
|
|
@strongify(self);
|
|
TLShakeViewController *shakeVC = [[TLShakeViewController alloc] init];
|
|
PushVC(shakeVC);
|
|
});
|
|
}
|
|
|
|
// 学习
|
|
{
|
|
NSInteger sectionTag = TLDiscoverSectionTagStudy;
|
|
self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0));
|
|
// 看一看
|
|
TLMenuItem *read = createMenuItem(@"discover_read", LOCSTR(@"看一看"));
|
|
[read setBadge:@"2"];
|
|
self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(read).viewTag(TLDiscoverCellTagRead).selectedAction(^ (TLMenuItem *data) {
|
|
@strongify(self);
|
|
TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"http://www.jianshu.com/u/8dabd0639b26/"];
|
|
[webVC setTitle:data.title];
|
|
PushVC(webVC);
|
|
});
|
|
// 搜一搜
|
|
self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(createMenuItem(@"discover_search", LOCSTR(@"搜一搜"))).selectedAction(^ (TLMenuItem *data) {
|
|
@strongify(self);
|
|
TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"https://www.zhihu.com/people/li-bo-kun-40/activities"];
|
|
[webVC setTitle:data.title];
|
|
PushVC(webVC);
|
|
});
|
|
}
|
|
|
|
// 社交
|
|
{
|
|
NSInteger sectionTag = TLDiscoverSectionTagSocial;
|
|
self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0));
|
|
// 附近的人
|
|
// self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModelcreateMenuItem(@"discover_location", LOCSTR(@"附近的人")).selectedAction(^ (TLMenuItem *data) {
|
|
// @strongify(self);
|
|
//
|
|
// });
|
|
// 漂流瓶
|
|
self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(createMenuItem(@"discover_bottle", LOCSTR(@"漂流瓶"))).selectedAction(^ (TLMenuItem *data) {
|
|
@strongify(self);
|
|
TLBottleViewController *bottleVC = [[TLBottleViewController alloc] init];
|
|
PushVC(bottleVC);
|
|
});
|
|
}
|
|
|
|
// 生活
|
|
{
|
|
NSInteger sectionTag = TLDiscoverSectionTagLife;
|
|
self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0));
|
|
// 购物
|
|
TLMenuItem *shopping = createMenuItem(@"discover_shopping", LOCSTR(@"购物"));
|
|
self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(shopping).selectedAction(^ (TLMenuItem *data) {
|
|
@strongify(self);
|
|
TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"http://m.zhuanzhuan.com"];
|
|
[webVC setTitle:@"转转"];
|
|
PushVC(webVC);
|
|
});
|
|
// 游戏
|
|
TLMenuItem *game = createMenuItem(@"discover_game", LOCSTR(@"游戏"));
|
|
[game setRightIconURL:@"http://qq1234.org/uploads/allimg/140404/3_140404151205_8.jpg" withRightIconBadge:YES];
|
|
[game setSubTitle:@"英雄联盟计算器版"];
|
|
self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(game).selectedAction(^ (TLMenuItem *data) {
|
|
@strongify(self);
|
|
TLGameViewController *gameVC = [[TLGameViewController alloc] init];
|
|
PushVC(gameVC);
|
|
});
|
|
}
|
|
|
|
// 小程序
|
|
{
|
|
NSInteger sectionTag = TLDiscoverSectionTagProgram;
|
|
self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 40, 0));
|
|
TLMenuItem *program = createMenuItem(@"discover_app", LOCSTR(@"小程序"));
|
|
self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(program).selectedAction(^ (id data) {
|
|
@strongify(self);
|
|
TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"https://github.com/tbl00c"];
|
|
PushVC(webVC);
|
|
});
|
|
}
|
|
|
|
[self reloadView];
|
|
[self resetTabBarBadge];
|
|
}
|
|
|
|
- (void)resetTabBarBadge
|
|
{
|
|
dispatch_async(dispatch_get_global_queue(0, 0), ^{
|
|
NSString *badgeValue;
|
|
NSArray *data = [self allDataModelArray];
|
|
for (NSArray *section in data) {
|
|
for (id item in section) {
|
|
if ([item isKindOfClass:[TLMenuItem class]]) {
|
|
if ([(TLMenuItem *)item badge] || [(TLMenuItem *)item showRightIconBadge]) {
|
|
badgeValue = @"";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
[self.tabBarItem setBadgeValue:badgeValue];
|
|
});
|
|
});
|
|
}
|
|
|
|
#pragma mark - # Delegate
|
|
- (void)collectionViewDidSelectItem:(TLMenuItem *)dataModel sectionTag:(NSInteger)sectionTag cellTag:(NSInteger)cellTag className:(NSString *)className indexPath:(NSIndexPath *)indexPath
|
|
{
|
|
if ([dataModel isKindOfClass:[TLMenuItem class]]) {
|
|
BOOL needResetTabBarBadge = (dataModel.badge || (dataModel.rightIconURL && dataModel.showRightIconBadge));
|
|
BOOL hasDesc = dataModel.subTitle.length > 0 || dataModel.rightIconURL.length > 0;
|
|
|
|
if (needResetTabBarBadge) {
|
|
[dataModel setBadge:nil];
|
|
[self resetTabBarBadge];
|
|
}
|
|
if (hasDesc) {
|
|
[dataModel setSubTitle:nil];
|
|
[dataModel setRightIconURL:nil];
|
|
}
|
|
|
|
if (needResetTabBarBadge || hasDesc) {
|
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
[self reloadView];
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
@end
|