6

プレイグラウンド、Xcode 6.3 (6D543q) を実行しています。したがって、Swift 1.2

Playground は XCPlayground をインポートします。UIView を作成し、XCPShowView() を呼び出して、Playground ではなく Simulator でレンダリングします。同じ方法で UIAlertView も提示しています。

UIAlertView は通常どおり表示されます。UIView は、大きいサイズと小さいサイズの間で 1 秒間に約 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 で使用する場合に Auto Layout にいくつかの問題があることです。一部の制約は、コンパイル時間の増加に加えて実行時例外を引き起こします。Xcode の将来のアップデートでこれが解決されることを願っています。もう 1 つの欠点は、XCPlayground を使用した場合のプレイグラウンドのパフォーマンスです。Playground の背後で実行されている iOS シミュレーターで Xcode が動作するため、遅延が発生する可能性があります。

于 2015-05-24T20:27:27.883 に答える