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 IOS WebRTC 音视频开发总结(二七)-- whatsapp之转发优先

    最近看了一篇老外在webrtcHacks上写的文章,主要介绍webrtc和whatsapp的传输机制,蛮好的,加上自己的理解进行总结, 希望对大伙有所帮助,转载请说明出处,原文来自博客园RTC.Bla ...

  2. Android开发教程 录音和播放

    首先要了解andriod开发中andriod多媒体框架包含了什么,它包含了获取和编码多种音频格式的支持,因此你几耍轻松把音频合并到你的应用中,若设备支持,使用MediaRecorder APIs便可以 ...

  3. 在Eclipse中查看JDK类库的源代码

    http://blog.csdn.net/a81895898/article/details/8486802 在Eclipse中查看JDK类库的源代码!!! 设置: 1.点 “window”-> ...

  4. C# 集合 — Hashtable 线程安全

    基础知识重要吗?真的很重要. 就在笔者与同事聊天中突然同事提出一个问题,让笔都有点乱了手脚(有点夸张),题目是这样的: 问:Hashtable 是线程安全的吗? 答:…… (沉默中,Yes Or No ...

  5. Spring事务:传播行为与隔离级别

    文章主要来源:https://github.com/dengdaiyemanren/onetopiconeday/wiki/spring%E4%BA%8B%E5%8A%A1%E9%85%8D%E7%B ...

  6. string,stringbuilder,stringbuffer

    String可以储存和操作字符串,即包含多个字符的字符数据.这个String类提供了存储数值不可改变的字符串. StringBuilder是线程不安全的,运行效率高,如果一个字符串变量是在方法里面定义 ...

  7. jquery Ajax中的dataType简析

    jquery中的ajax有好几种运用方式,但是基本上都是使用的$.ajax()方法,很多人经常会使用它来从后台获取json格式的数据,但是经常发现返回的json字符串并不能自动的转换成js里的json ...

  8. Lua 多维表的遍历中的赋值

    说到Lua的遍历将要使用到循环:先说遍历再说循环: 遇到这样类似结构的一个table Data={ []={p1=,pa={,,}}, []={p1=,pa={,,}}, []={p1=,pa={,, ...

  9. 一个ListView中显示不同的item(分组)

    MainActivity: package com.zzw.qqgroup; import java.util.ArrayList; import java.util.HashMap; import ...

  10. iPhone图标及启动画面大小 xcode5

    启动画面 文件名   大小px Default.png 320*480 Default@2x.png 640*960 Default-568h@2x.png 640*1136 图标 文件名  大小px ...