在我工作中经常会遇到有人吐槽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. POJ:1328-Radar Installation

    Radar Installation Time Limit: 1000MS Memory Limit: 10000K Description Assume the coasting is an inf ...

  2. 线段树: CDOJ1598-加帕里公园的friends(区间合并,单点更新)

    加帕里公园的friends Time Limit: 3000/1000MS (Java/Others) Memory Limit: 131072/131072KB (Java/Others) 我还有很 ...

  3. configurationChanges

    在Android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置.在activity加上android:c ...

  4. JAVA 基础--final 关键字的用法

    在java中,final的含义在不同的场景下有细微的差别,in a word,它指的是“不可变的” 1.修饰数据.这里的可以看到被final修饰的变量,值不能被改变,但是 package FinalT ...

  5. STF 连接其它操作系统上的安卓设备实操介绍【转】

    功能简介:https://www.jianshu.com/p/464fadaeb1d7 搭建教程:https://blog.csdn.net/xl_lx/article/details/7944586 ...

  6. hdu3613 Best Reward

    先manacher.然后前缀和价值,枚举切点,O(1)判断切后是否回文 #include <iostream> #include <cstring> #include < ...

  7. MySQL 8.* 账号密码管理

    修改密码: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码' 通过以下命令可以查看修改的账号 ...

  8. curl post 用json方式

    if(!function_exists('tps_curl_post3')){ function tps_curl_post3($url, $postData) { $postData = json_ ...

  9. js只能输入汉字

    var reg = new RegExp("[\\u4E00-\\u9FFF]+","g"); if(reg.test(val)){            al ...

  10. [Err] 1022 - Can't write; duplicate key in table '#sql-1500_26'

        今天用powerdesigner修改了一些外键关系,有两个外键的名字取一样的,忘记改了.然后在用navicat运行sql文件时,报出[Err] 1022 - Can't write; dupl ...