美文网首页iOS开发selector
Swift——调试工具Playground

Swift——调试工具Playground

作者: 桃子王 | 来源:发表于2017-01-11 10:39 被阅读201次


今天写一下Xcode中支持Swift语言的很好用的Playground功能。

打开Xcode工具,弹出如下弹框:

双击“Get started with a playground”,命个名字,即创建了一个新的Playground文件,如下图:

可以看到,左侧是编辑区,右侧面板中显示了str的内容“Hello, playground”。

通俗地说,playground文件是一个“所见即所得”的“操场”,因此在实现某些算法时,或者做某些尝试时,我们可以不用在项目里找一个空白区域写好代码,一遍一遍地按command+r去调试,而是直接把代码写在playground编辑区里,不用按任何按键,等待很短时间,Xcode就会把运行好的结果直接显示在右侧的面板里了。

有没有这么神奇?下面我们做个小测试,在playground中写下如下代码:

for i in1...100 {

       print(i)

}

手刚从键盘离开,就看到:

① 右侧显示了这个循环的次数

② 下方的控制台打印出了1~100

速度如此之快~这对于我们以后的调试起到了很好的辅助作用。

Playground的功能远不止这些。

在项目中,上述类似的功能性的代码有时我们不会调试太久,因此对playground的使用需求也不会很频繁,而真正浪费时间调试的,往往是一些自定义的view或者控件等,尤其是对坐标的计算、动画的处理,往往要调试很长时间才会达到目的。

这个时候,playground就会派上用场。

细心的你可能已经发现,playground文件默认是有 import UIKit这句代码的 ,也就是说它是支持UI控件的,问题是怎样才能看到写好的UI布局呢?

让我们继续写以下代码:

let view1 =UIView(frame:CGRect(x:0, y:0, width:100, height:50))

view1.backgroundColor=UIColor.blue

等了一会,发现右侧也没什么动静,只显示出两行“UIView”,这是因为,我们只创建了一个UIView,而并没有设置让其显示在playground中

首先导入PlaygroundSupport库:

import PlaygroundSupport

然后添加如下代码:

PlaygroundPage.current.liveView=view1

接着再点击Assistant Editors on Right:

下面就是见证奇迹的时刻:

可以看到我们用代码创建的蓝色view1终于出现了!

playground支持的远不止这些,我们可以对view进行动画操作:

importUIKit

import UIKit

import PlaygroundSupport

let containerView = UIView(frame:CGRect(x:0.0, y:0.0, width:375.0, height:667.0))

PlaygroundPage.current.liveView = containerView

containerView.backgroundColor = UIColor.white

let contentView = UIView(frame:CGRect(x:0, y:0, width:100, height:100))

contentView.backgroundColor = UIColor.yellow

containerView.addSubview(contentView)

contentView.center = containerView.center

UIView.animate(withDuration:0.2, animations: {

contentView.transform = CGAffineTransform(scaleX:0.8, y:0.8)

}) { (result) in

UIView.animate(withDuration:1, animations: {

contentView.transform=CGAffineTransform(scaleX:4, y:4)

contentView.alpha=0

})

}

具体运行效果就等你去亲眼观看啦~

相关文章

网友评论

    本文标题:Swift——调试工具Playground

    本文链接:https://www.haomeiwen.com/subject/wqalbttx.html