XIB、StoryBoard小技巧

SB push Tab时隐藏Tab

相信有很多人和我一样,开始使用 tabBar 时苦恼过在 tabBar 内置的 viewControllers 里添加 navigationController 的问题

苹果是希望我们使用 tabBar 时是作为根视图的,当然如果你固执地将其作为 navigationController 的 rootViewController 也是可以运行成功并达到自己的目的的,但是像不定时炸弹一样,会出现莫名其妙地程序运行即崩溃的问题,等出了问题再去改初始的视图框架是件很痛苦地事,别问我怎么知道的,我只想说,请不要忽略苹果给你的提示。。即便可以达到想要的效果。

所以要使用 navigationController 来push 视图就只能将 TabBar 的 viewControllers 中想要做 push 操作的视图控制器设置为 navigationController ,直接做 push 操作会带上 tabBar .

解决方式

  1. storyboard:在你想要push的viewController的通用设置中将Hide Bottom Bar On Push一项勾选上既可

  2. 代码:

    self.hidesBottomBarWhenPushed = YES;

image.png

PS:上图中 Extend Edges 中的 Under Top Bars 属性,在你的视图从nv push 过来时有一段距离的空白时,将此选项勾选去除一般可以解决

设置圆角

大家都爱圆角,button,弹出视图等 不加圆角怎么看怎么像Demo有没有,但是每次都要写那几句代码真是够了,当然也可以封装了之后调用,这是其一,但在调试程序时想尽快看到效果时,可用直接在xib和xb的视图中设置。

选中view,选中右边工作栏的class选项,在 User Defined Runtime Attributes 区域添加自己想为view添加的属性既可,大家可以看到Type选项有很多种,所以,但凡是属性为Type中的某种的都可以通过这种方式来设置, layer边框颜色 也可以直接设置,而不用再纠结RGB的数值等,可以直接取色,这里相关的tips我就不一一列举,抛砖引玉

image.png

SB中单独的View

很多人以为storyboard将单独的view去除了,以至于在VC中希望添加单独的view时,总是要去建立单独的xib,或是代码书写。

其实在SB的VC中添加View视图,布局完成后,将其拖动到 First Responder Exit 并列的位置,同样可以创建映射,为控件添加响应事件等,等同于以前xib中各个独立的视图,只是不能直观地看到这些视图的布局,如要查看布局状态,还得拖动到viewController的主窗口中进行查看

image.png

可视化坐标距离

IB 最烦人的问题就是对齐。用代码的时候我们可以明确地指定x,y坐标,但是换到IB的时候我们更多的时候是靠拖拽UIView来布局。比如需要三个间隔相同 的label,除了用强大的肉眼来估测距离是否相等以外,难道只能乖乖分别选中三个label,记下它们的坐标然后打开计算器来做加减法么?

显然不要那么笨,试试看选中一个label,然后按住option键并将鼠标移动到其他label上试试?你可以发现view之间的距离都以很容易理解的方式显示出来了。不仅是同层次的view,被选中view与其他层次的view之间的距离关系也可以同样显示。

选择之后效果与下文添加辅助线示例图类似

将多个view视图合并到一个视图层级

有时候添加了多个控件,而且千辛万苦终于调整好了对齐,间距

image.png

发现要将这些控件放在一个父类视图中方便操作,最直观地,拖动一个 view 到面板上,选中这些控件,拖拽到这个 view 上,悲剧就发生了,难道只能再次睁大双眼,一个个对齐,调整么

image.png

显然不用,选中这些控件,选择菜单栏上 Editor->Embed in->View/Scroll view

image.png

最终控件还是按照原来样式排练在一个view上

image.png

同样,要将其从父类view上移到另一个视图,选择上图中 Editor->Unembed 就可以了

为视图添加辅助线

搞设计的一般都知道辅助线是多么重要,我们在为视图布局时也可以为视图添加辅助线,方便我们布局时更加准确

添加 :双击某个View,按下 shift + Command + - 添加横向辅助线, shift + Command + | 添加纵向辅助线,添加的位置都是 左右/上下 居中的

移动 :光标移动到线上时会出现可拖动的按钮,按住 左右/上下 拖动到想要的位置,拖动时可以看到辅助线线距离视图左右/上下的距离

删除 :方式也很简单,与删除断点方式一样,快速拖动到视图看不见的地方即可删除

image.png

你可能感兴趣的:(XIB、StoryBoard小技巧)