文档章节

Xcode6快捷键、小技巧与xib圆角设置

yoyoso
 yoyoso
发布于 2015/03/17 15:31
字数 1238
阅读 24186
收藏 12

欢迎关注我的微博:http://weibo.com/u/1217310237

以下都是使用Xcode6的一些记录,比较杂,不定期持续更新……

快捷键

1、StoryBoard技巧

当你想直接在view中选择自己想要的元素时,但是又碍于一个view上叠加的元素太多很难直接选中,那么在这时,你同时按住键盘上的shift和 control键,然后在你想选择的元素上点击鼠标,会弹出一个窗口,上面罗列了鼠标点击的位置下所有存在的元素,然后你再去进行选择会变的异常的简单。

参考:三十而立,从零开始学ios开发(十七):Storyboards(上) - minglz - 博客园 

2、快速定位到左下角搜索框的快捷键:

有时候想搜索一个文件,常规的做法是鼠标点击左下角的搜索框,再输入文字,这太慢了,快捷键是:Cmd + Option + J

3、添加AutoLayout边距约束时如何不使用margin约束

通常我习惯于在xib或者StoryBoard中用右键drag拖线的方式设置autolayout约束,但是默认的autolayout边距约束可能是带margin的,也就是默认”Constrain to margin“是勾选的,这会导致约束值出现类似于Superview.Leading Margin这种的约束。而经过我的测试发现在Xcode6.1和Xcode6.4下这个margin可能表现行为还不一样。

为了避免麻烦,还是不用margin约束比较好,如何在添加约束时不使用margin约束呢?当然你可以去掉”Constrain to margin“的勾选,不过这要是一个一个去掉勾选也是挺烦的事情,而且对旧项目来说这可能又会导致原来布局好的视图产生变动。

简单的办法还是用快捷键,就是在drag后按option,显示的约束就没有margin了。注意次序,一定要先drag后按option,如果是先按option再drag,或者drag与按住option同时开始是无效的。

4、快速在文件树视力中切换到当前文件

在Xcode中经常会遇到跳转比较多的情形,有时候若跳转到某个m文件,然后又想在左边的文件目录中切换选中文件为当前打开的文件,可以用Cmd + Shift + J来操作

常用快捷键:

ctrl+shift+q 隐藏和显示Debug区

cmd+shift+c 显示Console

5、分屏快捷键

command + option + enter让你一秒分屏!

退出分屏点击command + enter也是so easy!

6、快速敲block

每次敲block是不是很头疼括号,尖括号什么的,试着敲个inline看Xcode的提示再回车,还头疼吗?


小技巧

1、添加第三方字体

以前在Xcode中添加第三方字体,需要像这篇文章里说的做,虽然很简单但是略有些麻烦。在Xcode6中就很简单了,只需要把字体ttf文件像普通文件加入到项目中,在xib或storyboard中就可以直接使用新字体了。

参考:Custom fonts in Interface Builder

2、删除控件的某个autolayout约束

在storyboard或xib中布局的控件如果有多个autolayout约束的话,想删除其中一个,看上去好像不太容易,其实很简单,点击控件,在右侧栏的约束列表里选择想要删除的约束,双击,然后按Backspace键就可以删除这个约束了。

3、在xib或storyboard中为UIView添加边框或圆角

先看图:

view的圆角半径和边框宽度可以按上图设置,但是默认情况下边框的颜色是不能设置的。

链接http://stackoverflow.com/a/17993890里给了一份category代码来增加设置边框颜色

CALayer+XibConfiguration.h:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer(XibConfiguration)
// This assigns a CGColor to borderColor.
@property(nonatomic, assign) UIColor* borderUIColor;
@end

CALayer+XibConfiguration.m:
#import "CALayer+XibConfiguration.h"
@implementation CALayer(XibConfiguration)
-(void)setBorderUIColor:(UIColor*)color
{
    self.borderColor = color.CGColor;
}
-(UIColor*)borderUIColor
{
    return [UIColor colorWithCGColor:self.borderColor];
}
@end

然后按这个图就可以设置边框颜色了:

经验证,可以成功。

还可以利用layer.cornerRadius实现一个圆形的view,将layer.cornerRadius设为一个正方形view宽度的一半,就可以显示为圆形。经测试,还需要设置layer.masksToBounds为YES才行,不行的话测试一下将layer.shouldRasterize设置为YES是否可以。参考了这里

更好的办法:直接借助IBInspectable在Interface Builder中显示相关的属性,不需要每次都输入属性名,见下图:

怎么实现:访问https://github.com/MakeZL/UIView-Category,下载UIView-Category/Classes_Category/Objective-c/路径下的文件加入到你的Xcode工程中,如果你用Swift就拷Swift文件夹下的。


还有一个另外的方案,见这里,不过用的是swift代码。

参考:

三十而立,从零开始学ios开发(十七):Storyboards(上)

几个Xcode Tip
http://spin.atomicobject.com/2014/05/30/xcode-runtime-attributes/

新技能get√提高你的编码效率 - 简书 



© 著作权归作者所有

共有 人打赏支持
yoyoso
粉丝 49
博文 129
码字总数 45109
作品 0
南京
高级程序员
私信 提问
加载中

评论(3)

新地球
新地球
Superview.Leading Margin 会影响什么呢
新地球
新地球
2
ScottZG
ScottZG
不错
iOS一些代码的取巧写法总结(二)

一、在xib/storyboard里面设置view圆角半径 在xib/storyboard里面设置view圆角半径 神奇的IB_DESIGNABLE和IBInspectable(xib中设置圆角) 二、push pop 动画突然消失的解决方案 产生的原因是动...

朝雨晚风
2016/12/05
0
0
ios 加载xib遇到的坑

storyboard,个人觉得是个好玩意儿,但是什么都做到其中总觉得杂乱。个人偏好把复杂的局部控件(比如定制的collectionviewcell)在xib文件中拉好。 在开发过程中遇到不少坑,记忆犹新的是:x...

iShown
2016/02/05
332
0
IBInspectable / IBDesignable可视化控件编程讲解/使用/封装

前言: 在以前我们使用xib,SB,nib 设置一个view的圆角 边框需要通过一下界面非常的繁琐,所以一般情况下更倾向于使用代码来设置反而更加简单 在现在 IBInspectable 属性彻底的解决了这个问题...

冰泪_
2016/05/23
1K
0
[[UIScreen mainScreen] bounds]获取尺寸不对 解决

1.看项目中是否缺少这张图片在项目中增加一张640*1136的图,应该是任何图都可以,然后命名为Default-568h@2x.png,就解决了。 2. 因为项目设置中的Launch Images Source没有设置好的原因。 ...

法斗斗
2016/01/26
39
0
xib文件,是不是有分辨率的问题

我在xib编辑器里看到的按钮是 但是,在模拟器里看到的按钮,却重叠了 xcode6, Mac10.9.5, 代码没有改过,用的是iphone5.5 inch

clevertension
2014/11/18
100
0

没有更多内容

加载失败,请刷新页面

加载更多

二进制取反

取反,是Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1。 概念 编辑 补码的规定如下: 对正数来说,最高位为0,其余各位代表数值本身(以二进制表示)...

天王盖地虎626
今天
5
0
OSChina 周一乱弹 —— 可乐进化史

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# 分享Radiohead的单曲《Creep》 《Creep》- Radiohead 手机党少年们想听歌,请使劲儿戳(这里) @EdmondFrank :刚...

小小编辑
今天
891
17
容器服务

简介 容器服务提供高性能可伸缩的容器应用管理服务,支持用 Docker 和 Kubernetes 进行容器化应用的生命周期管理,提供多种应用发布方式和持续交付能力并支持微服务架构。 产品架构 容器服务...

狼王黄师傅
昨天
5
0
高性能应用缓存设计方案

为什么 不管是刻意或者偶尔看其他大神或者大师在讨论高性能架构时,自己都是认真的去看缓存是怎么用呢?认认真真的看完发现缓存这一块他们说的都是一个WebApp或者服务的缓存结构或者缓存实现...

呼呼南风
昨天
25
0
寻找一种易于理解的一致性算法(扩展版)

摘要 Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可...

Tiny熊
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部