15

Is it possible to preview animation done for UIView with animateWithDuration in Playground? I am adding XCPShowView right after initialization of UIView and its shows everything it in a final state no matter what position on a timeline I will choose.

Nikita Leonov
  • 5,684
  • 31
  • 37

2 Answers2

6

Yes, it is (checked on Xcode 6.1.1, but may apply to earlier versions).

You should:

  1. Select the "Run in Full Simulator" option (see this answer for a step-by-step).

  2. Add the view you wish to animate within a container view.

For example, this shows a black square moving in a down-left motion:

import UIKit
import XCPlayground

let container = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 100.0, height: 100.0))
XCPShowView("container", container)

let view = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 50.0, height: 50.0))
view.backgroundColor = UIColor.blackColor()
container.addSubview(view)

UIView.animateWithDuration(5.0, animations: { () -> Void in
    view.center = CGPoint(x: 75.0, y: 75.0)
})
Community
  • 1
  • 1
Joseph Chen
  • 1,520
  • 13
  • 21
4

Xcode 7 update : XCPShowView is deprecated but you can see the animation in the playground liveView. And there is more coming soon: Interactive Playgrounds

Here is an update to Joseph Chen sample code. I also changed the color to green as the container default background is black :

import UIKit
import XCPlayground

let container = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 100.0, height: 100.0))
// XCPShowView("container", view: container)  // -> deprecated

let view = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 50.0, height: 50.0))
view.backgroundColor = UIColor.greenColor()
container.addSubview(view)

UIView.animateWithDuration(5) {
    view.center = CGPoint(x: 75.0, y: 75.0)
}

XCPlaygroundPage.currentPage.liveView=container
Nikita Leonov
  • 5,684
  • 31
  • 37
lazi74
  • 622
  • 1
  • 7
  • 23