1:不用storyboard 点击工程删除main  ui加载全部手码 
>> 在application的代理方法didFinishLaunchingWithOptions中添加代码显示window
>>并且设置根控制器为自定义的UITabBarController:XBMainTabController 
***********************************代码区****************************************
// 启动完成 让任务栏可见
    application.statusBarHidden = NO;
    
    // 创建窗口
    self.window = [[UIWindow alloc] init];
    self.window.frame = [UIScreen mainScreen].bounds;
    
    // 设置窗口的根控制器
    XBMainTabController *tabBarVc = [[XBMainTabController alloc] init];
    self.window.rootViewController = tabBarVc;
    
    // 让窗口成为主窗口 (显示窗口)
    [self.window makeKeyAndVisible];
********************************************************************************
 
 
2:程序图标(ios6简单适配)
>>ios6下图标高亮效果不要 即不要让系统渲染程序图标
****具体步骤:点击程序图片 在右边的工具栏中设置不要渲染
>>从外边托图片时 如果直接拖进来一个文件夹 最好先在程序的硬盘里拷贝好 在从程序硬盘里拖进来
 
 
3:启动图片:

>>启动图片  适配ios6的3.5英寸  修改plist文件

>>启动图片的全屏化:由于ios7view的尺寸默认是全屏的,而ios6不是,不包括状态栏的;
>>>>1:所以要再ios6中显示全屏的启动图片:现在工程中设置启动时不要显示状态栏
>>>>2:然后在application的代理方法didFinishLaunchingWithOptions中设置application.statusBarHidden = NO;
 
 
*****小知识**********************************************************************
A:一般一些程序的包内容在  个人(Finder-》前往-》个人)的 资料库(默认情况这个资料库是隐藏的)中;
显示和隐藏文件的终端命令:defaults write com.apple.finder AppleShowAllFiles -bool true/false
 
B:代码管理:创建不同的文件夹 来管理代码
>>一般的管理:以模块划分,每个模块都有自己的controller  view   model
********************************************************************************
 
 
4:控制器结构:tabbarcontroller下边管理四个navigationBarcontroller ,然后再包viewController
*****小知识**********************************************************************
     设置标题 tabbar的标题
     viewController.tabBarItem.title = title;
     设置navigation的标题
     viewController.navigationItem.title = title;
    /*******************上边的两个设置title可以直接用一句代替******************/
    viewController.title = title;
********************************************************************************
>>在自定义的UITabBarController:XBMainTabController中添加四个子控制器
>>每个都用navigationBarcontroller 包装
 
 
 
5:对常用的或全局都可以用的变量或常量进行宏定义 在.pch文件中进行宏定义
>>随机色:#define RandomColor [UIColor colorWithRed:arc4random_uniform(256)/255.0                  green:arc4random_uniform(255)/255.0 blue:arc4random_uniform(255)/255.0 alpha:1.0]
>>判断是否为ios7:#define iOS7 [[UIDevice currentDevice].systemVersion doubleValue] >= 7.0
 
 
6:tabbar底部的图片不要渲染  ios7的特性,默认都会对选中的tabbar图片渲染成蓝色
***这个方法只能再ios7上用  所以这里要判断  让这段代码只在ios7中执行
***********************************代码区****************************************
if (iOS7) { // 如果是ios7  设置图片不要渲染
        imageSelected = [imageSelected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        // 使用原图 不进行渲染
    }
********************************************************************************
 
 
 
 
7:对UIImage添加分类  适配ios6和7的图片适配
>> 应运程序一般要求ios6和ios7中界面基本相同  这时要对当前系统做判断  针对不同的系统用不同的图片
>> 一般ios7的图片名会在后边多一个ios7的后缀
***********************************代码区 图片适配代码*****************************
+(UIImage *)imageWithNamed:(NSString *)imageName
{
    UIImage *image = nil;
    
    if (iOS7) { // 如果是ios7 加后缀
        NSString *newName = [imageName stringByAppendingString:@"_os7"];
        image = [UIImage imageNamed:newName];
    }
    
    if (image == nil) { // 说明不是ios7
        image = [UIImage imageNamed:imageName];
    }
    return image;
}
设计思想:该方法添加到UIimage的分类中 ,并写为类方法 ;这样设计以后,我们在其他地方设置图片不需要
用UIImage 的imageNamed方法,直接用我们添加的类方法,这样就悄无声息的适配了ios6和7;做到真正的
代码封装,这样的代码才是漂亮的代码;(设置图片这个功能,本就该归UIImage管理)
********************************************************************************
 第一天最终效果图:

ios-仿新浪微博app-第1天UI搭建的更多相关文章

  1. ios 仿新浪微博 UINavigationController 向左滑动时显示上一个控制器的View.

    仿新浪微博 UINavigationController 向左滑动时显示上一个控制器的View. 实现原理,UINavigationController 的 self.view显示时把当前显示的vie ...

  2. iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建

    iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建 一.实现效果 说明:该示例在storyboard中使用动态单元格来完成. 二.实现 1.项目文件结构 ...

  3. iOS仿QQ侧滑菜单、登录按钮动画、仿斗鱼直播APP、城市选择器、自动布局等源码

    iOS精选源码 QQ侧滑菜单,右滑菜单,QQ展开菜单,QQ好友分组 登录按钮 3分钟快捷创建高性能轮播图 ScrollView嵌套ScrolloView(UITableView .UICollecti ...

  4. IOS 使用SDWebImage实现仿新浪微博照片浏览器

    使用第三方库SDWebImage实现仿新浪微博照片浏览器,可以下载图片缓存,点击之后滚动查看相片,具体效果如下: 代码如下: WeiboImageView.h: #import <UIKit/U ...

  5. 【手把手教程】uniapp + vue 从0搭建仿微信App聊天应用:腾讯云TXIM即时通讯的最佳实践

    基于uniapp + vue 实现仿微信App聊天应用实践,实现以下功能 1: 用户登陆 2: 聊天会话管理 3: 文本/图片/视频/定位消息收发 4: 贴图表情消息收发 5: 一对一语音视频在线通话 ...

  6. uniapp+nvue实现仿微信App界面+功能 —— uni-app实现聊天+语音+视频+图片消息

    基于uniapp + nvue实现的uniapp仿微信界面功能聊天应用 txim 实例项目,实现了以下功能. 1: 聊天会话管理 2: 好友列表 3: 文字.语音.视频.表情.位置等聊天消息收发 4: ...

  7. 分分钟解决iOS开发中App启动广告的功能

    前不久有朋友需要一个启动广告的功能,我说网上有挺多的,他说,看的不是很理想.想让我写一个,于是乎,抽空写了一个,代码通俗易懂,简单的封装了一下,各种事件用block回调的,有俩种样式的广告,一种是全屏 ...

  8. iOS UIKit:App

    1.App生命周期 IOS架构是由许多设计模式实现,如model-view-controller 和 delegation模式. 1.1 main函数 与其它框架类似,IOS框架的入口也是从main函 ...

  9. iOS 开发 UI 搭建心得(一)—— 驾驭 StoryBoard

    本系列文章中,我们将一起认识.了解当下 iOS 开发中几种常见的 UI 构建方式,分析他们分别适合的使用场景,以便让我们在以后的开发中,能够在恰当的时间.场景下做出最佳的选择,提升开发效率,增强程序的 ...

  10. 【HELLO WAKA】WAKA iOS客户端 之一 APP分析篇

    由于后续篇幅比较大,所以调整了内容结构. 全系列 [HELLO WAKA]WAKA iOS客户端 之一 APP分析篇 [HELLO WAKA]WAKA iOS客户端 之二 架构设计与实现篇 [HELL ...

随机推荐

  1. Android WebRTC 音视频开发总结(三)-- 信令服务和媒体服务

    前面介绍了WebRTCDemo的基本结构,本节主要介绍WebRTC音视频服务端的处理,,转载请说明出处(博客园RTC.Blacker). 通过前面的例子我们知道运行WebRTCDemo即可看到P2P的 ...

  2. wpf依赖属性、绑定实现原理、附加属性学习

    依赖属性和普通属性相比节省内存的原因:对于普通属性,每个对象有需要存储一个普通属性的值,即便是默认值.而依赖属性的默认值是静态的存储在类中的,所有对象都使用同一默认值,所以对于拥有大量属性的控件来说这 ...

  3. 遇到困难 jsp代码onclick="javascript:return(checklogin());"报错

    <script language="javascript"> function checklogin() { if (document.getElementById(& ...

  4. iPhone和iPad版本的分辨率a

  5. Log4net使用笔记

    Log4net使用笔记   编写人:CC阿爸 2013-10-29 近来在处理项目时候,想将系统的操作日志以文本的形式记录下来,方便对系统操作记录进行追踪. 经过在网上搜索部分解决方案,大致可以归纳如 ...

  6. linux常用命令--ps、netstat、find

     一.ps 1.1ps命令简介 Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那 ...

  7. Android中内容观察者的使用---- ContentObserver类详解

    详解:http://blog.csdn.net/qinjuning/article/details/7047607

  8. 高性能MySQL——第一章MySQL的架构与历史

    1.可以使用SHOW TABLE STATUS查询表的相关信息. 2.默认存储引擎是InnoDB,如果没有什么很特殊的要求,InnoDB引擎是我们最好的选择. 3.mysql的infobright引擎 ...

  9. mongodb 3.2存储目录结构说明

    [root@hadoop1 mongodb]# tree ./data ./data |-- WiredTiger | |-- WiredTiger.lock | |-- WiredTiger.tur ...

  10. .NET开源工作流RoadFlow-流程设计-流程步骤设置-按钮设置

    按钮设置是配置当前步骤的处理者可以执行哪些操作,每个按钮都有对应的执行脚本(javascript脚本). 从左边的按钮列表中选择当前步骤需要的按钮. 注意:如果是流程最后一步则要配置完成按钮而不是发送 ...