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. EasyUI datagrid 复杂表头处理

    1:表头固定(前台写) 参照官方:http://www.jeasyui.net/demo/334.html 效果图: 源代码如下: <!DOCTYPE html> <html> ...

  2. [转]基于AnyCAD的准双曲面齿轮建模

    基于AnyCAD的准双曲面齿轮建模 作者:谨阳 (文章来源:http://www.opencascade.net/ask/?/article/6) 摘要:根据准双面齿轮的加工方法和传动特性,对准双面齿 ...

  3. jQuery控制TR的显示隐藏

    网上有很多,这里介绍三种: 第一种方法,就是使用id,这个方法可以在生成html的时候动态设置tr的id,也是用得最多最简单的一种,如下: <table> <tr><td ...

  4. Vue.js学习 Item5 -- 计算属性computed与$watch

    在模板中绑定表达式是非常便利的,但是它们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护.这就是为什么 Vue.js 将绑定表达式限制为一个表达式.如果需 ...

  5. html5面向对象做一个贪吃蛇小游戏

    canvas加面向对象方式的贪吃蛇 2016-08-25 这个小游戏可以增加对面向对象的理解,可以加强js逻辑能力,总之认真自己敲一两遍收获还是不少啊!!适合刚学canvas的同学练习!! 废话不多说 ...

  6. SequoiaDB的数据分区操作

    在SequoiaDB集群环境中,用户往往将数据存放在不同的逻辑节点与物理节点中,以达到并行计算的目的. 分区:把包含相同数据的一组数据节点叫一个分区,如上图绿色方块组成三个分区. 分区键:切分时,所依 ...

  7. 分享:php 上传图片的代码

    转自:http://www.jbxue.com/article/6379.html php 上传图片的代码,很简单,实现了基本的文件类型.文件大小的检测,并实现了基本的水印与缩略功能,比较适合初学的朋 ...

  8. scala构造器实战

    父类 abstract class Event(val name:String) { var time:Long var content:String } 子类 private[spark] clas ...

  9. C扩展 从共享内存shm到memcache外部内存

    引言 - ipc - shm 共享内存 本文会通过案例了解ipc 的共享内存机制使用, 后面会讲解C 如何使用外部内存服务memcached. 好先开始了解 linux 共享内存机制. 推荐先参看下面 ...

  10. 对Iframe和图表设置高度的优质代码

    //对Iframe和图表设置高度 function f() { parent.window.setWinHeight(parent.window.document.getElementById(&qu ...