在我工作中经常会遇到有人吐槽Xcode中的interface builder(以下简称IB)不好用的开发者。在我看来,IB是一个非常棒的可视化开发工具,可以非常快捷的设置UI控件的大部分常用属性。下面就说两个IB中的技巧:

1.快速显示元素相对位置
这个技巧由@余书懿在新浪微博分享。
在IB中,选中一个control A,然后按住alt键,鼠标指向B,就显示A和B的相对位置关系,指向父view也行。

2.给页面添加水平、垂直辅助线
这个技巧是由我一个好朋友,同时也是陌陌的产品经理发现的。
IB中是可以添加水平和垂直的辅助线的。并且辅助线是可以拖动、重复添加和删除的。 
水平辅助线的快捷键是:Command + Shift + -
垂直辅助线的快捷键是:Command + Shift + |
当然,也可以通过菜单命令来生成,位置在Editor菜单下,如下图:

辅助线的生成位置是由当前选定的view的中心点决定的,也就是说,如果当前选定了根view,那么将生成根view的辅助线;如果选中的是某一个UI控件,那就以这个控件的中心点生成。 (注意下图的UILabel & UIButton)

有了辅助线就可以轻松根据辅助线对齐控件(辅助线可以吸附),拖动辅助线可以查看辅助线把视图分割的两部分大小。

至于删除辅助线嘛,就是把辅助线在其方向上移出视图边界,你会听到嗖地一声同时会看到一个丢纸团的动画,那就表明删除辅助线成功了。

小结:从我自身来讲,一开始做iOS开发也不是很爱用IB这个东西,感觉调整起来非常别扭。但是随着我做开发时间的变长,我越来越觉得IB非常好使,非常直观与节省时间。之前在《程序员》上看过一位计算机博士写的连载文章:《Mac OS X 背后的故事》,其中有一个章节是讲Interface Builder的,了解了IB的来龙去脉,才知道IB是乔帮主极力推崇的好东西。在我看来,IB才是Xcode这个IDE与众不同和精华所在,不会使用IB的iOS开发者不能算是真正iOS开发者,因为他从没有真正走进乔帮主的内心世界!

以上只是本人一家之言,各位看看了解一下就可以了,习惯这个东西不是那么容易改的。

Interface Builder中的技巧的更多相关文章

  1. 浅析 - 提高xib(Interface Builder)高效工作的几个小技巧

    本文译自:8 Tips for working effectively with Interface Builder(需FQ)先来看看目录:介绍使view的Size与view中的Content相适应按 ...

  2. 提高Interface Builder高效工作的8个技巧

    本文转载至 http://www.cocoachina.com/ios/20141106/10151.html iOS开发Interface Builder 本文译自:8 Tips for worki ...

  3. iOS开发工具Xcode:Interface Builder

    简介: Interface Builder(IB)是Mac OS X平台下用于设计和测试用户界面(GUI)的应用程序(非开源).为了生成GUI,IB并不是必需的,实际上Mac OS X下所有的用户界面 ...

  4. iOS开发-Interface Builder的前世今生

    Interface Builder,是用于苹果公司Mac OS X操作系统的软件开发程序,Xcode套件的一部分,于1988年创立.它的创造者Jean-Marie Hullot自称是“一个热爱旅行.充 ...

  5. IOS 使用Interface Builder开发界面入门与技巧

    引言: 通过Interface Builder(简称IB)来制作界面一直是iOS开发界饱受争议的方式.主要争议的话题是不太适合团队协作开发,再就是对IB的使用比较生疏,觉得IB只能完成一些很简单的功能 ...

  6. 【Xamarin挖墙脚系列:代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧(转)】

    正愁如何选择构建项目中的视图呢,现在官方推荐画板 Storybord...但是好像 xib貌似更胜一筹.以前的老棒子总喜欢装吊,用代码写....用代码堆一个HTML页面不知道你们尝试过没有.等页面做出 ...

  7. 代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

    近期接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问.就是应该怎样制作UI界面.iOS应用是非常重视用户体验的,能够说绝大多数的应用成功与否与交互设计以及UI是否美丽易用有着非常大的关 ...

  8. ***Xcode Interface Builder或Storyboard中可建立那两种连接?

    在Xcode Interface Builder或Storyboard中,可建立到输出口(IBOutlet)和操作(方法,IBAction)的连接. IBOutlet are for output C ...

  9. iPhone开发中的技巧整理

    1.NSCalendar用法 -(NSString *) getWeek:(NSDate *)d { NSCalendar *calendar = [[NSCalendar alloc] initWi ...

随机推荐

  1. Centos7 安装 OwnCloud 私有云

    OwnCloud 一款文件主机服务软件,就是我们平时使用的云存储,不过这是在自己主机的服务器上建立属于自己的私有云,OwnCloud 使用AGPLv3协议发布.本项目是基于PHP和SQLite,MyS ...

  2. 持续化集成Jenkins的系统配置

    最近在研究selenium2自动化测试,用到持续化集成jenkins.由于之前仅限于使用,而没有真正动手配置过,所以现在学习从零开始,搭建持续化集成,故而有了这篇博客. 先介绍一下项目持续集成测试,这 ...

  3. BZOJ 2687: 交与并

    答案存在于 1.两个互相包含的区间 2.两个互不包含的区间 决策单调性显然 但是这代码很精妙啊,并不知道这个为什么能这样写 #include<cstdio> #include<alg ...

  4. day03 set集合,文件操作,字符编码以及函数式编程

    嗯哼,第三天了 我们来get 下新技能,集合,个人认为集合就是用来list 比较的,就是把list 转换为set 然后做一些列表的比较啊求差值啊什么的. 先看怎么生成集合: list_s = [1,3 ...

  5. GridView的RowCommand事件中获取每行控件的值

    //获取当前行                GridViewRow gvr = (GridViewRow)((Control)e.CommandSource).Parent.Parent; //获取 ...

  6. datatable 修改点击列头进行排序顺序

    一般点击排序时,是先升序后降序 可以通过如下代码修改排序规则 jQuery(function ($) { $(".datatable").dataTable({ "pag ...

  7. Vue样式绑定、事件绑定

    1.样式绑定 1.1class类标签绑定 <p :class="对象"> <p :class="数组"> <p :class=&q ...

  8. [uiautomator篇][python调用java][1]应用下载的插件需要很长时间问题解决

    1第一次打开应用,可能会要求下载插件,我们先在/sdcard/Android/data/<packageName>  或者/data/data/<pakeageName>找到插 ...

  9. Codeforces Round #410 (Div. 2) A. Mike and palindrome

    A. Mike and palindrome time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  10. 利用json实现数据传输

    JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. ...