web-dev-qa-db-fra.com

Est-ce que Swift playground supporte UIKit?

J'ai essayé de créer un UILabel dans un terrain de jeu mais j'ai échoué. Est-ce que l'aire de jeu ne prend en charge que le développement OS X pour le moment?

64
bydsky

Oui!

Fichier: Nouveau> Fichier ...> iOS> Source> Aire de jeu

import UIKit
let lbl = UILabel(frame: CGRectMake(0, 0, 300, 100))
lbl.text = "Hello StackOverflow!"

Ensuite, enregistrez le fichier. Cela déclenchera le terrain de jeu pour interpréter les choses liées à l'interface utilisateur. Parfois, vous devrez peut-être ajouter une fin de ligne et enregistrer à nouveau - c'est une version bêta. À ce stade, le mot "UILabel" doit apparaître à droite.

ios playground quickview

Maintenant, pour voir ce que vous avez fait, vous devez cliquer sur l'œil "Aperçu rapide" à droite ou sur le cercle blanc pour l'ouvrir dans l'Assistant éditeur:

Voici une capture d'écran de quelques éléments de base avec UIImage, etc. ios playground example

75
MechEthan

Edited @ 2014-11-13: Il semble que le nouveau xcode 6 ait résolu ce problème.

NON, ça ne va pas. Mais il convient de noter que vous pouvez importer UIKit.

Si vous voulez importer UIKit vous devez suivre ceci:

  1. Affichage -> Utilitaires -> Afficher l'inspecteur de fichiers (opt + cmd + 1)
  2. Sur le côté droit de Xcode Changez “Playground Settings -> Platform” d'OS X à iOS

alors vous pouvez importer UIKit ou un module pour iOS

ps. J'essaie de créer un UIImageView mais il ne montre pas l'image correcte du côté droit. Il semble inutile d'importer UIKit

48
6david9

Dans Xcode 7, vous ne pouvez plus utiliser le Quick Look pour voir l'apparition d'un UIView.

Au lieu de cela, utilisez le Assistant Editor et:

XCPlaygroundPage.currentPage.liveView = sampleView

Comme ça:

import XCPlayground
import UIKit

XCPlaygroundPage.currentPage.needsIndefiniteExecution = true

// Simulate User Interaction, not available in Xcode 7.2
func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
            DISPATCH_TIME_NOW,
            Int64(delay * Double(NSEC_PER_SEC))
        ),
        dispatch_get_main_queue(), closure)
}

let color = UIColor(red: 1, green: 1, blue: 0, alpha: 1)
let leftMargin = 20
let view = UIView(frame: CGRect(x: 0, y: 0, width: 375, height: 667)) // iPhone 6 proportions
view.backgroundColor = UIColor.grayColor()

// LABEL
let label = UILabel(frame: CGRect(x: leftMargin, y: 5, width: 300, height: 44))
label.text = "Hello, playground"
label.textColor = UIColor.whiteColor()
view.addSubview(label)

// TEXTFIELD
let textField = UITextField(frame: CGRect(x: leftMargin, y: 60, width: 300, height: 44))
textField.placeholder = "Edit me…"
textField.backgroundColor = UIColor(white: 1, alpha: 0.5)
textField.textColor = UIColor.whiteColor()
textField.userInteractionEnabled = true
view.addSubview(textField)

XCPlaygroundPage.currentPage.liveView = view

delay(1.0) { () -> () in
    textField.text = "New text!"
}
16
duan

Dans Xcode 8 XCPlaygroundPage.currentPage.liveView est obsolète. Au lieu de cela, utilisez

import PlaygroundSupport 

PlaygroundPage.current.liveView = view
12
Evgeny Mikhaylov

Appuyez sur CMD + Option + 1 et changez la plate-forme pour iOS, cela vous permettra d'importer UIKit.

9
user3630017

J'ai trouvé que je pouvais ajouter un nouveau fichier de terrain de jeu dans IOS) et dans ce fichier, je pouvais importer UIKit.

5
bydsky

veuillez utiliser la combinaison Command (⌘) + Option(⌥) + 1 pour passer de la plateforme OSX à la plate-forme iOS pour utiliser UIKit.

5
13th Ghost

Appuyez sur Option + Cmd + 1 et choisissez iOS dans les paramètres de la plate-forme. Ensuite, vous pouvez importer UIKit et jouer ~

3
onevcat

Solution la plus simple: Xcode 9.2

  • Commencez avec une nouvelle aire de jeu Single View:

enter image description here

  • show Assistance Editor: Affichage -> Editeur d’assistance -> Afficher l’éditeur d’assistance.

  • voici. Par défaut, vous verrez la propriété print: label.text = "Hello World!" dans la fenêtre Live View

2
Vlad