UIKit Framework

Aus Wikizone
Wechseln zu: Navigation, Suche

Links

Swift (Programmiersprache)
UIKit Framework - Snippets

Einführung

UIKit ist eine Bibliothek von Frameworks und Klassen für die Entwicklung von Benutzeroberflächen (User Interfaces, UI) auf iOS, iPadOS, watchOS und tvOS. Sie bietet eine Reihe von vorgefertigten UI-Elementen wie Buttons, Tabellen, Sammlungen von Ansichten und vieles mehr, die von Entwicklern verwendet werden können, um native Anwendungen für Apple-Plattformen zu erstellen.

UIKit ist ein wichtiger Bestandteil von Xcode, dem integrierten Entwicklungsumgebung (IDE) von Apple, und wird häufig in Verbindung mit anderen Frameworks wie Foundation und Core Data verwendet, um vollständige Anwendungen zu erstellen.

UIKit wurde von Apple entwickelt und ist Teil der iOS-SDK (Software Development Kit). Es ist ausschließlich für die Entwicklung von Anwendungen auf Apple-Plattformen gedacht und kann nicht auf anderen Betriebssystemen verwendet werden.

Erstellen von Views

Das UIKit hilft beim erstellen von Benutzeroberflächen und stellt viele vorgefertigte Komponenten bereit. In den UIKit Snippets siehst du ein Beispiel wie man nur mit Code einen View erstellen und von einem andern View aufrufen kann.

UIKit Framework - Snippets

In der Praxis macht man sich die Arbeit i.d.R. leichter...

Man kann sich die Arbeit stark erleichtern. Folgende Schritte sind notwendig

View mit Cocoa und Storyboard erstellen

  1. Datei mit Template CocoaClass erstellen. Das erzeugt im Prinzip eine Datei die schon die wichtigsten Code-Snippets enthält
  2. Storyboard erstellen
  3. Storyboard mit der neu erstellten Klasse verbinden

Cocoa Touch Class

New File > Cocoa Touch Class 
> Class z.B. ResultViewController
> Subclass of UIViewController

Storyboard erstellen

Storyboard mit Controller verbinden

Über den Klassennamen verbindet sich ein Storyboard mit dem Controller Code. Dafür musst du nur im StoryboardView oben links den kleinen gelben Punkt klicken (Result View Controller) und dann im rechten Bereich im Identity Inspector den richtigen Class Name angeben.

Übergange von Views mit Segue

Mit einem Segue kannst du Übergange von Storyboards festlegen und später programmatisch aufrufen.

Segue erstellen

  • Von einem ViewController mit control zum anderen ziehen (entweder in den Ansichten (gelber Bobbel) oder im Sideview.
  • Art auswählen
  • Identifier vergeben (Property Panel) z.B. goToResults

Segue Code für den Übergang

Im Start Controller kann man nun den ZielView mit der performSegue Funktion die jeder View enthält aufrufen:

self.performSegue(withIdentifier: "goToResult", sender: self)

Wenn man außerdem im Zielview Properties setzen möchte kann man das mit der prepare Funktion machen. Diese Funktion wird automatisch aufgerufen wenn man performSegue ausführt.

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    // you should check if it's the right segue
    if segue.identifier == "goToResult" {
        print(segue.identifier!)
        /**
         Originally prepare() targets a UIViewController. 
         But as we created our view we also created a Subclass of UIViewController 
         Thus we have to tell which subclass our destination is in the override function. 
         We can do that by using the "as" keyword . This is called DOWNCASTING.
             
         Exclamation mark (!) means it is a forced downcast. Like with Optionals 
         this expresses our certainty that the target is a ResultViewController
         */
        let destinationVC = segue.destination as! ResultViewController
        destinationVC.bmiValue = calculatorBrain.getBMIValue()
        destinationVC.advice = calculatorBrain.getAdvice()
        destinationVC.color = calculatorBrain.getColor()
        /**
         via the destination we have access to the destinations properties and can set them.
         */
    }
}

Zurück zum Hauptlayer

Der neue View liegt in der Regel einfach über dem Starview. Daher müssen wir den Zielview einfach wieder schließen.

    @IBAction func recalculatePressed(_ sender: UIButton) {
        self.dismiss(animated: true,completion: nil)
    }

Some Views

UITextFields

UITextFields

UITableView

UITableView

UIPicker

UIPickerView

UIAlertController

UIAlertController

Erlaubt das Anzeigen von Alerts als Overlay über dem aktuellen View