引言:

通过Interface Builder(简称IB)来制作界面一直是iOS开发界饱受争议的方式.主要争议的话题是不太适合团队协作开发,再就是对IB的使用比较生疏,觉得IB只能完成一些很简单的功能.然而Interface Builder的出现并不是偶然,更是苹果一直推崇使用GUI实现技术.只是面对不同的问题,我们需要有相应的解决办法.而不是刻意抵触.
    如今,Xcode的第五个版本发布,新版IDEIB的核心文件Xib进行了一次全面的优化和升级.解决了大家一直争议的团队协作问题. 并且Autolayout(自动布局)的出现,和Xib配合使用简直是天作之合.那么本文的目的就来一点一点揭开IB的神秘面纱,并熟练运用到实际的项目中.

参考资料:

1:Xcode 5中的Interface Builder更有利于团队协作开发

http://beyondvincent.com/blog/2013/09/04/111-xcode-5-finally-makes-interface-builder-a-viable-option-for-teams/

2:Autosizing缩放规律详解(iPhone5支持以及屏幕旋转支持)

http://www.devdiv.com/autosizing_iphone_-blog-1-51978.html

3:提高Interface Builder高效工作的8个技巧

http://beyondvincent.com/blog/2014/03/19/18-tips-for-working-effectively-with-interface-builder/

4:使用 Swift 和 Xcode 6 制作超棒的 UI 组件

https://github.com/nixzhu/dev-blog/blob/master/2014-06-10-make-awesome-ui-components-ios-8-using-swift-xcode-6.md

5:Size Classes With Xcode 6: One Storyboard For All Sizes

http://www.learnswift.io/blog/2014/6/12/size-classes-with-xcode-6-and-swift

使用:

首先来看看通过Xcode我们可以创建哪些Xib文件,如下图:

从图中罗列的可选项中可以判断出,哪些是最常用的,以及苹果推荐我们使用哪种来创建界面.

1:Storyboard
Storyboard中文翻译过来的意思是故事版.是苹果在Interface Builder推出的一项新的布局方式,不过Storyboard的本质依旧是Xib,它出现的主要目的是更好的展示Xib与Xib之间的流程和联系.当然,如果要介绍Storyboard估计需要彻底新开一篇博文来专门其如何使用.

2:View
View便是我们在使用IB实现界面时最常用的方式. 创建后,Xib里面已经默认初始化了一个View

3:Empty,Window,Application

以上三个的使用场景还是比较少的.如果你好奇,不妨也新建一个试试.

IOS 使用Interface Builder开发界面入门与技巧的更多相关文章

  1. XCode Interface Builder开发——2

    XCode Interface Builder开发--2 简单的练手项目--仿苹果自备的计算器 简介 制作一个简易功能的计算器并非难事,但是其中要考虑的不同情况却仍有许多,稍不留神就会踩坑. 例如: ...

  2. XCode Interface Builder开发——1

    XCode Interface Builder开发--1 创建Xcode项目 选择第二个选项 选择Single View App,点击Next 设置完后点击Next Xcode基本面板 导航面板 工具 ...

  3. 【iOS】Interface Builder 预览

    Interface Builder 为最顶层视图提供了 Simulated Metrics,预览用户界面的各种外观设置效果,例如顶部有导航栏或底部有标签栏的效果,如图所示:

  4. iOS 使用interface builder 创建太复杂的constrains时容易产生crash

    今天写程序,遇到了crash,在界面初始化时不会有,想切换到别的tab页就报错了.主要内容如下: Cannot find an outgoing row head for incoming head ...

  5. IOS - xib(Interface Builder,view) - can't change view size(view不能改变大小问题)

    很多时候,我们自定义tableview.collectionview的cell,也有时候我们要自定义窗口xib,但创建xib后,其height.width不可修改. 这时问题就来了,怎么才能使我们的自 ...

  6. iOS开发~interface Builder(简称 IB) 界面构建器

    1.interface Builder 设置界面 1.1 是什么? 一个可视化的界面编辑工具软件,在xcode4之后整合到了xcode中 1.2 作用? 通过可视化的界面设置,能够少写或不写代码而完成 ...

  7. iOS学习笔记(1)--认识Xcode6.1的Interface Builder和常用快捷键

    Interface Builder基本界面 红色区域为工具栏(Tool Bar) 蓝色区域为导航区(Navigator Area) 绿色区域为编辑区(Editor Area) 黑色区域是调试区(Deb ...

  8. iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束

    http://blog.csdn.net/pucker/article/details/41843511 上一篇文章<iOS 8界面自动布局系列-1>简要介绍了iOS界面布局方式的前世今生 ...

  9. 【转 iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束

    原文网址:http://blog.csdn.net/pucker/article/details/41843511 上一篇文章<iOS 8界面自动布局系列-1>简要介绍了iOS界面布局方式 ...

随机推荐

  1. 【和我一起学python吧】python的一些推荐

    看到未名的几篇帖子 使我想起了和python的一些经历,于是写了一篇咚咚. 1 书籍: python的syntax足够简单,semantics也不复杂,不怎么会使人混乱,一般来说看自带的文档足够可以学 ...

  2. 基于GPL329xx linux平台电容屏gsl1680的驱动调试分析

    因客户有用到了gsl1680 7寸电容屏,所以拿了一块过来,便在329xx的平台上面开始调试了. 大概浏览了一下所提供的资料,只有介绍模组的资料跟一份中文版的datasheet,datasheet只是 ...

  3. bzoj 1090 [SCOI2003]字符串折叠(区间DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1090 [题意] 给定一个字符串,问将字符串折叠后的最小长度. [思路] 设f[i][j ...

  4. css 超出部分显示省略号

    代码: overflow: hidden; white-space: nowrap;  text-overflow: ellipsis; 重点代码:text-overflow: ellipsis; 解 ...

  5. POJ动态规划题目列表

    列表一:经典题目题号:容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 13 ...

  6. CentOS安装XRDP实现远程桌面访问

    1.配置环境: yum install gcc pam-devel openssl-devel -y 2.进入指定目录下载并解压xrdp: 先安装 wget; sudo yum -y install ...

  7. 第二百九十六天 how can I 坚持

    今天果真好冷,至今遇到的最冷的一天,出去一趟,脸都快要冻瘫了. 感觉自己事真的多,找个对象还这事那事的,活该单身. 好愁人啊. 今天,魏中贺来北京,本来说的要明天聚聚,可是,都不给力啊,都不知道在忙啥 ...

  8. 国外PHP学习网站书籍资料汇总

    这篇文章汇总了全面多样的PHP学习资源,包括书籍.网站.文章等,帮助你提高PHP开发能力,巩固PHP知识.结合上一篇<重磅资料!Github上的PHP资源汇总大全>,一定可以让你的PHP技 ...

  9. freemaker自定义分页控件实现

    <link href="${res}/css/pages-jhdb.css" rel="stylesheet" type="text/css&q ...

  10. mysql的interval函数用法

    Name: 'INTERVAL' Description: Syntax: INTERVAL(N,N1,N2,N3,...) Returns 0 if N < N1, 1 if N < N ...