【iOS微博客户端开发】1、微博整体项目的构建

  回顾自己做过的项目,总结里面的知识点,分享自己参照WXHL的视频开发的一个模拟微博客户端的过程,为了还在IOS上找不到项目参考的朋友,这里会由一系列手把手的教程,如有不足,还希望可以抖抖小手,献上您宝贵的意见,交流交流经验!

 

注:本文适合已经学完OC基础和基本了解IOS大部分控件知识的读者阅读,如果还没有学习OC的UI控件的话,建议读者先花点时间去阅读教程

 

1)整体框架 

  如下图所示,这就是微博整个项目的框架结构图,其中DDMenuController是我们常用的能够左右滑动页面的开源类库,用法也很简单,待会儿会由介绍,一个控制器实现微博客户端的一个子功能(每个控制器还会有许许多多的子功能),有一个整体框架的认识,对后面的开发会带来很大的好处。 

【iOS微博客户端开发】1、微博整体项目的构建

 

2)项目构建

  下面简单介绍一下搭建所用的文件,需要加入两个CoreText.framework(处理一些文本),QuarzCore.framework(处理一些动画), 

WXBaseModel基本的Model类,用于处理网络数据,还有一些开源类库DDMenu,RTLabel(处理字体,微博有点击@后面的字体,可以访问到用户的资料的界面,还有点击超链接,可以访问网络页面,这些都是通过RTLabel实现),还有就是SDWebImage类库,用来缓存网络的图片,UIUtils封装了常用的工具类,UIViewExt处理UI,还有剩下的WXHLGlobalUICommon,封装了一些常用的全局方法。

 

【iOS微博客户端开发】1、微博整体项目的构建  

  然后再创建两个基类,BaseViewController(继承ViewController),BaseNavigationController(继承UIViewController),还有一个MainViewController(继承UITabBarController)。

【iOS微博客户端开发】1、微博整体项目的构建

  接下来我们就要初始化5个子控制器,先为每个模块创建一个文件夹,,分别对应首页,个人资料,消息,发现,更多。然后在每个文件夹里面分别创建子控制器继承(BaseViewController)HomeViewController,ProfileViewController,MessageViewController,DiscoverViewController.h,MoreViewController,

然后再MainViewController里面创建初始化方法

 1 //初始化控制器

 2 -(void)_initViewController{

 3 

 4     _home = [[HomeViewController alloc] init];

 5     MessageViewController *message = [[[MessageViewController alloc] init] autorelease];

 6     

 7     ProfileViewController *profile = [[[ProfileViewController alloc] init]autorelease ];

 8     

 9     DiscoverViewController *discover = [[[DiscoverViewController alloc] init] autorelease];

10     MoreViewController *more = [[[MoreViewController alloc] init]autorelease];

11     

12     NSArray *views = @[_home,message,profile,discover,more];

13     NSMutableArray *viewControllers = [[NSMutableArray alloc] initWithCapacity:5];

14     for (UIViewController *viewController in views) {

15   

16         BaseNavigationController *nav = [[BaseNavigationController alloc] initWithRootViewController:viewController];

17         [viewControllers addObject:nav];

18         [nav release];

19     }

20     

21     self.viewControllers = viewControllers;

22 }

接着在viewDidLoad掉用这个方法

1 - (void)viewDidLoad

2 {

3     [super viewDidLoad];

4     [self _initViewController];

5    

6 }

最后在AppDelegate里面启动方法里面初始化MainViewContrller即可

 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

 2 {

 3     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

 4     self.window.backgroundColor = [UIColor whiteColor];

 5     [self.window makeKeyAndVisible];

 6     

 7     //设置主题

 8     [self setTheme];

 9     

10     MainViewController *mainController = [MainViewController alloc] init];

11     self.window.rootViewController = mainController;

12     

13     

14     return YES;

15 }

 IOS5.0之前是通过- (void)drawRect:(CGRect)rect方法设置导航栏的背景,之后是通过自带的方法设置的,查看一下代码,

- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;

 

所以最好在BaseNavigationController做一个版本控制,稍后在微博主题切换的时候会谈到,不用着急!

 

  

你可能感兴趣的:(ios)