Le framework ‘UIKit’ propose des classes pour élaborer la partie ‘interface utilisateur’ d’une application. Par exemple, une scène (vue), un bouton, une image, du texte, …
Le nom des classes UIKit débute toujours par ‘UI’. Par exemple UILabel, UIImage, UIView, UIButton, …
var uneVue:UIView = UIView(frame : CGRectMake(0,0,250,250)) uneVue.backgroundColor = UIColor.purpleColor()

Système de coordonnées de UIKit
|
Device |
Screen dimensions (in points) |
|---|---|
| iPhone et iPod touch avec écran retina 4 pouces | 320 x 568 |
| Autres iPhone et iPod | 320 x 480 |
| iPad | 768 x 1024 |
var uneAutreVue:UIView = UIView(frame : CGRectMake(10,10,40,40)) uneAutreVue.backgroundColor = UIColor.greenColor() uneVue.addSubview(uneAutreVue)

UIView.frame renseigne sur la position et la dimension de l’objet
println(uneAutreVue.frame.origin.x) // 10.0 println(uneAutreVue.frame.size.width) // 40.0 println(uneVue.center) // (125.0, 125.0)
uneAutreVue.center = uneVue.center uneVue

Une transformation (rotation)
uneAutreVue.transform = CGAffineTransformRotate(uneAutreVue.transform, 3.14 / 4 /* angle en radian */) uneVue

Les coordonnées absolues d’une Vue:
println(uneAutreVue.bounds) // (0.0, 0.0, 40.0, 40.0)
Ajouter un objet ‘UILabel’
var unTitre = UILabel(frame: CGRectMake(10,0,uneVue.bounds.width - 10, 25)) unTitre.text = "Bonjour TIM" unTitre.textColor = UIColor.whiteColor() unTitre.textAlignment = NSTextAlignment.Center uneVue.addSubview(unTitre)

let largeur:CGFloat = 20, hauteur:CGFloat = 20, marge:CGFloat = 10
for ligne in 0...7 {
for colonne in 0...7 {
// Générer une valeur rgb aléatoire
// arc4random_uniform(n) retourne une valeur aléatoire entre 0 et n-1
let rouge = CGFloat(arc4random_uniform(256)) / 255
let vert = CGFloat(arc4random_uniform(256)) / 255
let bleu = CGFloat(arc4random_uniform(256)) / 255
var carre = UIView(frame: CGRectMake(CGFloat(colonne) * (largeur + marge) + marge, CGFloat(ligne) * (hauteur + marge) + marge, largeur, hauteur))
carre.backgroundColor = UIColor(red: rouge, green: vert, blue: bleu, alpha: 1)
uneVue.addSubview(carre)
} // colonne
} // ligne
uneVue
Un peu de normalisation
let largeur:CGFloat = 20, hauteur:CGFloat = 20, marge:CGFloat = 10
let lignes = 7, colonnes = 7
func couleurHasard() -> CGFloat {
return CGFloat(arc4random_uniform(256)) / 255
}
for ligne in 0...lignes {
for colonne in 0...colonnes {
// Générer une valeur rgb aléatoire
// arc4random_uniform(n) retourne une valeur aléatoire entre 0 et n-1
let rouge = couleurHasard()
let vert = couleurHasard()
let bleu = couleurHasard()
var carre = UIView(frame: CGRectMake(CGFloat(colonne) * (largeur + marge) + marge, CGFloat(ligne) * (hauteur + marge) + marge, largeur, hauteur))
carre.backgroundColor = UIColor(red: rouge, green: vert, blue: bleu, alpha: 1)
uneVue.addSubview(carre)
} // colonne
} // ligne
uneVue

Afficher une image (UIImageView + UIImage)
Note: Pour qu’Xcode puisse localiser les images, Il faut renseigner le dossier des Ressources du projet ‘playground’

Note: Il faudra peut-être redémarrer le projet après cette opération.
var uneImage = UIImageView(image: UIImage(named:"tintin.jpg"))

Ajouter l’image à une vue
var uneScene = UIView(frame : CGRectMake(0,0,320,568))
uneScene.backgroundColor = UIColor.lightGrayColor()
uneScene.addSubview(uneImage)

Contrôler la taille et la position de l’image dans la vue.
var uneAutreImage = UIImageView(frame: CGRectMake(0,0,150 ,150)) uneAutreImage.image = UIImage(named:"tintin.jpg") uneAutreImage.center = uneScene.center uneScene.addSubview(uneAutreImage)
