6

我正在运行一个操场,Xcode 6.3 (6D543q)。因此 Swift 1.2

Playground 导入 XCPlayground。我正在创建一个 UIView 并调用 XCPShowView() 让它在模拟器中而不是在 Playground 中呈现。我也以同样的方式呈现 UIAlertView。

UIAlertView 正常显示。UIView 在较大和较小尺寸之间闪烁大约每秒 5 次,合理不规则。我已经尝试调整它的大小以满足屏幕的边界,但没有运气。

下面的代码......

// Playground - noun: a place where people can play

import UIKit
import Foundation
import XCPlayground

 XCPlayground.XCPSetExecutionShouldContinueIndefinitely(continueIndefinitely: true)

@objc class alertHandler: NSObject, UIAlertViewDelegate {

  func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
    if buttonIndex > 0 {

     // View things....
     let redRectangleFrame = CGRect(x: 0, y: 0, width: 200, height: 200)
     let redRectangle = UIView(frame: redRectangleFrame)
     redRectangle.backgroundColor = UIColor.redColor()
     redRectangle.setTranslatesAutoresizingMaskIntoConstraints(false)
     XCPShowView("Red Rectangle", redRectangle)

     // Alert view things...
     let recevingAlertView = alertView

     let text = alertView.textFieldAtIndex(0)?.text
     println("\(text!)")
     println("Button \(buttonIndex)")
    }
  }
}

let anAlertHandler = alertHandler()

let status = "Hey there!"
let message = "Do you have a moment to talk about our Lord and Saviour, Cthulhu?"
let cancel = "Sounds wierd"
let ok = "Oooh! Yes"

let alert = UIAlertView(title: status,
                  message: message,
                 delegate: anAlertHandler,
        cancelButtonTitle: cancel,
        otherButtonTitles: ok)
alert.alertViewStyle = UIAlertViewStyle.PlainTextInput
alert.show()

XCPShowView("Alert", alert)
4

1 回答 1

1

注意到一些测试游乐场模拟器示例在本地出现了一些闪烁(您的示例对我来说崩溃了版本 6.3.2 (6D2105))

这篇文章(他们的动画确实出现了,但闪烁,重叠)

Playgrounds 中的 UIKit 存在一些限制和缺陷。主要限制是自动布局在 Playgrounds 中使用时会出现一些问题。除了增加编译时间之外,一些约束还会导致运行时异常。希望未来对 Xcode 的更新能够解决这个问题。另一个缺点是使用 XCPlayground 时 Playgrounds 的性能。由于 Xcode 与在 Playground 后面运行的 iOS 模拟器一起工作,可能会出现延迟。

于 2015-05-24T20:27:27.883 回答