iOS开发-微博客户端-基本界面搭建(01)

1>创建程序载入界面

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

{

//1>创建窗口

self.window = [[UIWindowalloc] initWithFrame:[UIScreenmainScreen].bounds];

//2>设置窗口的根控制器

UITabBarController *tabBarController = [[UITabBarControlleralloc] init];

self.window.rootViewController = tabBarController;

//3>显示窗口

[self.windowmakeKeyAndVisible];

returnYES;

}

2>LaunchImage配置

LaunchImage.launchimage文件下的Contents.json文件中记录了LaunchImage的详细配置:

3>取消APP图标渲染

4>程序加载时隐藏状态栏

在程序加载完成后如需恢复状态栏显示,可以在didFinishLaunchingWithOptions方法中调用[application setStatusBarHidden:NO]方法;

5>添加TabBar控制器及其子控制器

自定义一个TabBarViewController类继承UITabBarController类用来创建自定义的TabBarView,并在该类中的viewDidLoad方法中创建子控制器

- (void)viewDidLoad

{

[superviewDidLoad];

//添加子控制器

UIViewController *home = [[UIViewControlleralloc] init];

home.view.backgroundColor = [UIColorredColor];

home.tabBarItem.title = @"首页";

home.tabBarItem.image = [UIImageimageNamed:@"tabbar_home"];

[home.tabBarItemsetSelectedImage:[UIImageimageNamed:@"tabbar_home_selected"]];

[selfaddChildViewController:home];

UIViewController *message = [[UIViewControlleralloc] init];

message.view.backgroundColor = [UIColororangeColor];

message.tabBarItem.title = @"消息";

message.tabBarItem.image = [UIImageimageNamed:@"tabbar_message_center"];

[message.tabBarItemsetSelectedImage:[UIImageimageNamed:@"tabbar_message_center_selected"]];

[selfaddChildViewController:message];

UIViewController *discover = [[UIViewControlleralloc] init];

discover.view.backgroundColor = [UIColorgreenColor];

discover.tabBarItem.title = @"发现";

discover.tabBarItem.image = [UIImage imageNamed:@"tabbar_discover"];

[discover.tabBarItemsetSelectedImage:[UIImageimageNamed:@"tabbar_discover_selected"]];

[selfaddChildViewController:discover];

UIViewController *profile = [[UIViewControlleralloc] init];

profile.view.backgroundColor = [UIColorblueColor];

profile.tabBarItem.title = @"我";

profile.tabBarItem.image = [UIImageimageNamed:@"tabbar_profile"];

[profile.tabBarItemsetSelectedImage:[UIImageimageNamed:@"tabbar_profile_selected"]];

[selfaddChildViewController:profile];

}

6>渲染图片

在iOS7中,会对selectedImage的图片再次渲染为蓝色,要想显示原图,就必须要取消渲染;

取消渲染调用的方法:

selectedImage = [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

7>优化添加子控制器代码

将添加子控制器到TabBarViewController的代码进行优化,建立如下方法:

- (void)addOneChildViewController:(UIViewController *)viewController withTitle:(NSString *)title imageName:(NSString *)imageName selectedImageName:(NSString *)selectedImageName

{

viewController.view.backgroundColor = ZFRandomColor;

viewController.tabBarItem.title = title;

viewController.tabBarItem.image = [UIImage imageNamed:imageName];

UIImage *image = [UIImage imageNamed:selectedImageName];

if (iOS7) {

image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

}

[viewController.tabBarItem setSelectedImage:image];

[self addChildViewController:viewController];

}

其中ZFRandomColor和iOS7为自定义宏,其宏定义在Prefix.pch文件下:

#ifdef __OBJC__

#import <UIKit/UIKit.h>

#import <Foundation/Foundation.h>

#import <CoreData/CoreData.h>

#define ZFRandomColor [UIColor colorWithRed:arc4random_uniform(256)/255.0 green:arc4random_uniform(256)/255.0 blue:arc4random_uniform(256)/255.0 alpha:1.0]

#define iOS7 [[UIDevice currentDevice].systemVersion doubleValue] >= 7.0

#endif

由于imageWithRenderingMode方法只在iOS7环境下有效,因此此处代码需要添加条件判断语句进行系统适配,通过获取当前运行环境的系统版本来判断是否编译此方法;

8>图片适配

为UIImage添加一个分类,用于image的系统适配:

@implementation UIImage (Extension)

+ (UIImage *)imageWithName:(NSString *)imageName

{

UIImage *image = nil;

if (iOS7) {

NSString *name = [imageName stringByAppendingString:@"_os7"];

image = [UIImage imageNamed:name];

}

if (!image) {

image = [UIImage imageNamed:imageName];

}

return image;

}

@end

iOS开发-微博客户端-基本界面搭建(01)

时间: 2024-10-14 05:53:35

iOS开发-微博客户端-基本界面搭建(01)的相关文章

iOS开发——实战OC篇&amp;环境搭建之Xib(玩转UINavigationController与UITabBarController)

iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController) 前面我们介绍了StoryBoard这个新技术,和纯技术编程的代码创建界面,本篇我们将介绍一个老的技术,但是在很多的公司或者库里面还是使用这个技术,既然如此它肯定有他的好处,至于好处这里我就不一一介绍了.在Xcode5之前是只能使用Xib或者代码的,而代码又对于很多初学者来说算是一个难题.毕竟不知道怎么下手.所以我就总结了一下这段时间自己编写程序的一个实例来说明怎么

iOS开发——实战OC篇&amp;环境搭建之纯代码(玩转UINavigationController与UITabBarController)

iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController) 这里我们就直接上实例: 一:新建一个项目singleView Controller,命名未iCocos 二:由于我们使用的纯代码实现的,所以删除其中的StoryBoard和Viewtroller的两个文件 三:新建一个继承自TabBar Controller的类,我们命名问iCocos ViewController 三:在Appdelegate的实现文件中导入刚刚

iOS开发——实战OC篇&amp;环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)

环境搭建之StoryBoard(玩转UINavigationController与UITabBarController) 研究了这么就IOS开发,都没有所处一个像样或者自己忙一点的项目.最近自己正打算开始着手做一个项目,可是不知道怎么下手,感觉前面学了好多,可是回头想想却又很难下手,其中最主要的就是第一步环境的搭建,当然在这之前还有选题和素材,但是那些对于ios开发来说都不是技术上的问题或者在以后公司里面一半都不是我们所考虑的.所以今天开始我将以三篇简短但又实用的文章给大家介绍一下,怎么搭建一个

iOS 仿微博客户端红包加载界面 XLDotLoading

一.显示效果 二.原理简介 1.思路 要实现这个效果需要先知道这两个硬币是怎样运动的,然后通过放大.缩小的效果实现的这种有距离感的效果.思路如下: 一.这两个硬币是在一定范围内做相对运动的,可以先使一个硬币在一个固定范围内做左右的往复运动,另一个硬币和它做"相对运动"即可. 二.让硬币从左至右移动时先变小再回复正常:从右至左移动时先变大再回复正常:这样就实现了这用有距离感的"相对运动". 2.代码 第一步 要实现一个硬币在一定范围内实现左右往复运动,需要先固定一个范

iOS 简单音乐播放器 界面搭建

如图搭建一个音乐播放器界面,具备以下几个简单功能: 1,界面协调,整洁. 2,点击播放,控制进度条. 3.三收藏歌曲,点击收藏,心形收藏标志颜色加深. 4,左右按钮,切换歌曲图片和标题. 5,点击中间图片,隐藏所有按钮,仅显示蓝色背景. 设计的整体思路: 1.在搭建界面的时候,为了整洁和方便后续的功能的添加,需要将整个的界面划分为几个部分: ①:最上面的一行包括:一个返回按钮.一个歌曲名称.一个收藏按钮: ②:第二行:一个slider控件.两侧是当前的歌曲播放进度和歌曲的总时长--两个lable

iOS开发--调用系统通讯录界面

今天写代码遇到了要调用系统通讯录,看了一些博客发现写的都是获取通讯录的内容,而不是调用系统的界面. 分享一下自己写的代码 第一步:引入 #import <AddressBook/AddressBook.h> #import <AddressBookUI/AddressBookUI.h> 第二步:添加点击事件 创建一个通讯录界面 并以present的方式跳转 #pragma mark -- IBAction - (IBAction)buttonClicked:(id)sender {

IOS开发-windows下object-c环境搭建

手头没有mac,开始学习object-c,只有在windows下搭建object-c编译环境. 下载需要的软件:http://www.gnustep.org/experience/Windows.html 安装gnustep-msys-system,gnustep-core,gnustep-devel,gnustep-cairo: 依次安装,直接默认下一步,前两个是必装,后两个选装,我的如下: 安装完成后,默认路径为:C:\GNUstep: 新建helloworld.m文件: #import <

ios开发中的4种数据持久化方式【二、数据库 SQLite3、Core Data 的运用】

               在上文,我们介绍了ios开发中的其中2种数据持久化方式:属性列表.归档解档.本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运用: 在本节,将通过对4个文本框内容的创建.修改,退出后台,再重新回到后台,来认识这两种持久化数据的方式.效果图如下[图1]: [图1 GUI界面效果图] [本次开发环境: Xcode:7.2     iOS Simulator:iphone6S plus   By:啊左]     一.数据库SQL

使用iOS开发使用第三方库的个人建议

对于一个语言的流行伴随着的就是第三方库的丰富,相应的也会出现依赖库管理的工具.cocoapods之于ObjC,就像maven/gradle 之于java.gem之于ruby那样. cocoapods基本上是创建在在github社区上的,开源并且社区活跃.除了用github上的中央仓库外,也可以自己搭建私服什么的随便乱搞.(学习推荐iOS开发视频教程<OC语言>) 但就我来说,不推荐使用cocoapods,槽点如下: 1.像maven这样的工具,是为了管理庞大的第三方库依赖.控制版本.构建工程等