Поддерживает ли IOS Playground анимацию UIView?

Можно ли просмотреть анимацию, выполненную для UIView с анимациейWithDuration в Playground? Я добавляю XCPShowView сразу после инициализации UIView, и он показывает все, что он в конечном состоянии, независимо от того, какую позицию на временной шкале я выберу.

Ответы

Ответ 1

Обновление Xcode 7: XCPShowView устарело, но вы можете увидеть анимацию на игровой площадке liveView. И скоро будет еще больше: Интерактивные игровые площадки

Вот пример кода Джозефа Чена. Я также изменил цвет на зеленый, поскольку фон по умолчанию для контейнера черный:

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

Ответ 2

Да, это (проверено на Xcode 6.1.1, но может применяться к более ранним версиям).

Вы должны:

  • Выберите шаг "Запустить в полном симуляторе" (см. этот ответ за шаг за шагом).

  • Добавить представление, которое вы хотите оживить в представлении контейнера.

Например, это показывает черный квадрат, движущийся в движении вниз-вниз:

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)
})