提升Interface Builder高效工做的8个技巧

先来看看目录:前端

  1. 介绍git

  2. 使view的Size与view中的Content相适应github

  3. 按住option键—观察所选中view与另外view边缘之间的距离canvas

  4. Editor -> Embed In View, Unembed:app

  5. 在不影响subview的位置时给view自由的添加padding字体

  6. 对不在最前端的view进行移动动画

  7. IBOutletCollection排序ui

  8. 使用自定义属性spa

  9. MoarFonts——字体定制:所见即所得设计

介绍

在JoyTunes工做期间,咱们在开发最新一版的钢琴应用程序,对程序的UI作了大量的从新设计,于是也在Interface Builder上花费了许多时间,对于图片和view的缩放操做,很是的让人不省心。不过在开发过程当中,咱们发现了许多很是不错的IB使用技巧,我寻思着这必需要跟你们分享,因此成就了这篇文章。

免责声明:
在JoyTune工做期间,咱们使用的是.xib文件(不是storyboards),而且没有使用Auto Layout。实际上这主要是历史缘由致使的。因此,这里介绍的一些技巧可能稍微有点不一样(若是你使用storyboard或Auto Layout),不过大多数都是同样的。

1. 使view的Size与view中的Content相适应

很惭愧的是最近才发现这个功能——能节约大量时间。
选中任意的一个view,而后Editor->Size to Fit Content,或者简单的按 ⌘=
接着就会按照下面的规则对选中view的Size作出与之Content对应的适应。

  • ImageView/Button的size会设置为图像的原始size(最多见的用法):

  • Label/Button的size会被设置为与当前text内容至关的尺寸:

  • parent container view会与其subviews的frames相适应。

2. 按住option键—观察所选中view与另外view边缘之间的距离

按住option键以后,选择一个view,而后将鼠标悬停在别的一些view上,会看到一些距离——选中view与别的view边缘之间的距离。

3. Editor -> Embed In View, Unembed:

你是否是对此素手无策呢:你但愿将已有的一些subviews放入到不一样的parent view中,甚至是不一样的.xib文件中,可是当你把一些view从新设置以后,它们为自动的位于新的parent view中心?

如今好了,咱们有一个解决办法,以下图所示:

4. 在不影响subview的位置时给view自由的添加padding

当试图给view添加padding时,默认状况下subview的x和y是不会改变的,可是有时候咱们并不但愿是这样的结果。我发现一个最好的方法,就是在按住⌘时拖动view的边缘:

5. 对不在最前端的view进行移动

刚开始我还觉得要想移动不在最前端的view是不可行的。

有一种方法就是先将非最前端的view临时设置到最前端,移动好位置以后,在设置回去。

另一种方法就是使用右边panel中的size inspector,不过有时候要想设置一个好的位置,须要不断的猜想和修正。

另外我发现一种方法:使用键盘上的上下左右键来移动view——这还不用把view设置为最前端:

  • 在document outline中选中view

  • 为了得到view的焦点:单击root view的frame

  • 利用箭头进行移动

提醒:
得到view的焦点还有一个更好的方法:在document outline上双击view,就能够用箭头移动view了。

6. IBOutletCollection排序

有时候IBOutletCollection里面元素的顺序对咱们来讲很是重要:咱们但愿按某个顺序对其进行迭代。

有一种方法:在代码里面利用x/y/tag对其作排序处理,而后在迭代。

实际上,不必这么作。IBOutletCollection的顺序取决于咱们dragged connection的顺序,能够经过^+单击 File’s Owner来查看当前的顺序:

7. 使用自定义属性

可能这个功能是IB中不多被使用的:使用Identity inspector中的User Defined Runtime Attributes(用户自定义运行时属性)在view上设置自定义属性:

在此我定义了一个JTLabel类,咱们能够设置它的stroke color和width,这样一来咱们就不用在代码里面设置相关属性了。

利用这个功能很好的一例子就是Canvas,经过它不用写一行代码就能定义相关的动画。

8. MoarFonts——字体定制:所见即所得

在Interface Builder中字体的定制是个很是麻烦的事情。IB并无内置该功能,我用过比较好的解决办法就是使用自定义属性——就像Canvas同样,或者使用字体替换技术——例如IBCustomFonts。这些都是有效的方案,不过他们有一个致命的缺点——它们不能给咱们一种WYSIWYG(所见即所得)的体验,固然,这也是为何咱们会第一时间使用Interface Builder的缘由。

为了知道给label设置的自定义字体是否合适,咱们必需要运行程序才能知道结果——这有点让人不能接受。

最近我发现了一个新的解决办法:使用MoarFonts。卖价10美圆,没有demo,没有试用——不过请相信,这很是值得购买!它的使用方法很是简单:将MoarFonts当作script build phase,而后build app,接着重启Xcode,就可在Interface Builder中看到定制的字体。

打完收工!但愿这些技巧对你能有所帮助。

相关文章
相关标签/搜索