【IOS微博客户端开发】1、微博整体项目的构建_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 【IOS微博客户端开发】1、微博整体项目的构建

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

 2013/10/29 12:59:06  小木头_迪  博客园  我要评论(0)
  • 摘要:回顾自己做过的项目,总结里面的知识点,分享自己参照WXHL的视频开发的一个模拟微博客户端的过程,为了还在IOS上找不到项目参考的朋友,这里会由一系列手把手的教程,如有不足,还希望可以抖抖小手,献上您宝贵的意见,交流交流经验!注:本文适合已经学完OC基础和基本了解IOS大部分控件知识的读者阅读,如果还没有学习OC的UI控件的话,建议读者先花点时间去阅读教程1)整体框架如下图所示,这就是微博整个项目的框架结构图,其中DDMenuController是我们常用的能够左右滑动页面的开源类库
  • 标签:iOS 项目 博客 客户 开发 客户端 微博

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

 

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

 

1)整体框架 

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

 

2)项目构建

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

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

 

  

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

  接下来我们就要初始化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之前是通过- (class="s1">void)drawRect:(CGRect)rect方法设置导航栏的背景,之后是通过自带的方法设置的,查看一下代码,

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

 

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

 

  

发表评论
用户名: 匿名