Praktikum iOS-Entwicklung im Sommersemester 2016 Übungsblatt 3

Die Seite wird erstellt Rory Seitz
 
WEITER LESEN
Praktikum iOS-Entwicklung im Sommersemester 2016 Übungsblatt 3
Ludwig-Maximilians-Universität München
               Institut für Informatik
    Lehrstuhl für Mobile und Verteilte Systeme
         Prof. Dr. Claudia Linnhoff-Popien

                      Praktikum iOS-Entwicklung im
                          Sommersemester 2016
                              Übungsblatt 3
Abgabetermin:         10.05.2016, spätestens 23:59
                      (Gilt nur für die, die ihre Lösungen am Besprechungstermin vorstellen. Dies geschieht
                      in Form einer ca. 5-minütigen Powerpoint-Präsentation. Die Abgabe muss daher die
                      Präsentationsdatei enthalten und erfolgt über Uniworx.)
Besprechung:          11.05.2016

Aufgabe 5: (H)                Gradienten mit Core Graphics

In der Vorlesung haben Sie mit UIKit und Core Graphics zwei Möglichkeiten kennengelernt,
individuelle zweidimensionale Views zu erstellen. Einige Funktionalitäten von Core Graphics wie
z.B. das Zeichnen von Gradienten lassen sich jedoch nicht auf objektorientierte Art und Weise mit
Hilfe der Klassen und Methoden von UIKit realisieren.

In dieser Aufgabe sollen Sie eine iOS-App mit Objective C bzw. Swift erstellen, die in einer eigenen
View geometrische Figuren mit unterschiedlichen Gradienten visualisiert. Halten Sie sich bei der
Lösung der nachfolgenden Aufgaben an folgende Vorgehensweise:
–       Erstellen Sie mit Xcode ein Projekt vom Typ Single View Application.
–       Fügen Sie dem Projekt eine Klasse GradientView hinzu, die von der Klasse UIView erbt.

–       Überschreiben Sie die Methode drawRect der Klasse GradientView, indem Sie die ent-
        sprechenden Anweisungen zum Zeichnen der geometrischen Figuren implementieren.
–       Modifizieren Sie das automatisch generierte Storyboard, so dass es als Custom View eine
        Instanz der Klasse GradientView verwendet.

a.      Setzen Sie die iOS-App in Objective C unter Beachtung der oben genannten Vorgehensweise
        um. Die Methode drawRect der Klasse GradientView soll ein Dreieck mit einem Farbver-
        lauf von blau nach rot visualisieren. Als Ergebnis soll Ihre Anwendung eine Anzeige generie-
        ren, die der aus Abbildung 1a entspricht.
b.      Setzen Sie die iOS-App in Swift unter Beachtung der oben genannten Vorgehensweise um.
        Die Methode drawRect der Klasse GradientView soll ein Rechteck mit einem Farbverlauf
        von gelb nach grün visualisieren. Als Ergebnis soll Ihre Anwendung eine Anzeige generieren,
        die der aus Abbildung 1b entspricht.
Praktikum iOS-Entwicklung im Sommersemester 2016 Übungsblatt 3
Praktikum iOS-Entwicklung – SS 16, Übungsblatt 3                                                  2

                               (a) Objective C            (b) Swift

                 Abbildung 1: Darstellung der Anwendungen auf dem iPhone 6.

Aufgabe 6: (H)             Schattierungen mit Core Graphics

In dieser Aufgabe sollen Sie eine iOS-App mit Objective C bzw. Swift erstellen, die in einer eigenen
View zufällig erzeugte Rechtecke mit und ohne Schattierung visualisiert. Halten Sie sich bei der
Lösung der nachfolgenden Aufgaben an folgende Vorgehensweise:
–    Erstellen Sie mit Xcode ein Projekt vom Typ Single View Application.
–    Fügen Sie dem Projekt eine Klasse ShadowView hinzu, die von der Klasse UIView erbt.

–    Überschreiben Sie die Methode drawRect der Klasse ShadowView, so dass diese zufalls-
     basiert zwischen 1 und 50 Rechtecke generiert. Verwenden Sie für Ihre Lösung ausschließ-
     lich Funktionen aus dem Core Graphics Framework (also nicht UIKit o.ä.). Implementie-
     ren Sie Ihre Lösung so, dass jedes Rechteck eine zufallsbasierte Position, eine zufallsbasier-
     te Größe und eine zufallsbasierte Füllfarbe erhält. Achten Sie darauf, dass alle Rechtecke
     komplett innerhalb der durch die View vorgegebene Zeichenfläche liegen. Zudem soll je-
     des zweite erzeugte Rechteck einen Schatten generieren. Greifen Sie dazu auf die Funktion
     CTContextSetShadow zurück. Lagern Sie alle sich wiederholenden Schritte wie die Er-
     stellung der zufallsbasierten Rechtecke, die Erstellung der zufallsbasierten Farben und das
     wiederholte Zeichnen der Rechtecke in geeignet Hilfsfunktionen aus.
Hinweis: Um den Grafikkontext Ihrer View zwischenzuspeichern, bietet sich die Verwendung der
Funktionen CGContextSaveGState und CGContextRestoreGState an.

a.   Setzen Sie die iOS-App in Objective C unter Beachtung der oben genannten Vorgehensweise
     um. Als Ergebnis soll Ihre Anwendung Anzeigen generieren, die denen aus Abbildung 2
     entsprechen.
b.   Setzen Sie die iOS-App in Swift unter Beachtung der oben genannten Vorgehensweise um.
     Als Ergebnis soll Ihre Anwendung Anzeigen generieren, die denen aus Abbildung 2 entspre-
     chen.
Praktikum iOS-Entwicklung im Sommersemester 2016 Übungsblatt 3
Praktikum iOS-Entwicklung – SS 16, Übungsblatt 3                                                3

                   (a) 3 Rechtecke        (b) 5 Rechtecke         (c) 6 Rechtecke

Abbildung 2: Darstellung der Anwendung für eine unterschiedliche Anzahl an Rechtecken auf dem
iPhone 6.

Aufgabe 7: (H)              Tab Bar Controller

Erstellen Sie eine iOS-App, die unter Verwendung einer Instanz vom Typ TabBarController,
die Logos von Apple, Windows und Ubuntu visualisiert. Verwenden Sie dazu eine Vorgehensweise
Ihrer Wahl (z.B. programmatisch mit Swift oder Objective C, mit Storybord, mit Xib-Files, . . . ).
Achten Sie bei der Umsetzung auf die Verwendung sinnvoller Layout-Constraints. Als Ergebnis
soll Ihre Anwendung Anzeigen generieren, die der aus Abbildung 3 entsprechen.

                     (a) Apple             (b) Windows              (c) Ubuntu

                 Abbildung 3: Darstellung der Anwendungen auf dem iPhone 6.
Praktikum iOS-Entwicklung im Sommersemester 2016 Übungsblatt 3
Praktikum iOS-Entwicklung – SS 16, Übungsblatt 3                                                  4

Aufgabe 8: (H)                Navigation Controller und Segues

In dieser Aufgabe sollen Sie unter Verwendung einer Instanz vom Typ NavigationController
eine iOS-App implementieren, die dem Nutzer folgende Funktionalität bietet:

Der erste Screen (Startansicht) Ihrer Anwendung visualisiert einen roten Button mit dem Titel
“5”, einen grünen Button mit dem Titel “10”, einen blauen Button mit dem Titel “20” sowie einen
schwarzen Button mit dem Titel “50”. Klickt der Nutzer auf einen der vier Buttons, wird er zu
einem neuen Screen (Detailansicht) navigiert. In der Detailansicht werden dem Nutzer in einer
diagonalen Anordnung farbige Rechtecke präsentiert. Die Anzahl der visualisierten Rechtecke so-
wie deren Farbe richten sich nach dem Titel sowie der Farbe des zuvor angeklickten Buttons.

Abbildung 4 illustriert beispielhaft einige Zustände der Anwendung.

                    (a) Startansicht   (b) Detailansicht nach Klick(c) Detailansicht nach Klick
                                       auf den roten Button        auf den blauen Button

    Abbildung 4: Darstellung der Anwendungen in seinen möglichen Zuständen auf dem iPhone 6.

Beachten Sie bei der Implementierung der Anwendung folgende Anforderungen:
–      Implementieren Sie die Anwendung mit Swift.
–      Verwenden Sie für die Navigation zwischen der Startansicht und der Detailansicht eine In-
       stanz vom Typ NavigationController.
–      Implementieren Sie die Startansicht sowie die Detailansicht in jeweis einem eigenen View
       Controller. Verwenden Sie also auch für die verschiedenen Detailansichten nur einen View
       Controller.
–      Implementieren Sie im View Controller der Startansicht die Methode prepareForSegue,
       um die Anzahl und die Farbe der zu zeichnenden Rechtecke zu übergeben. Lesen Sie dazu
       beim Aufruf der Methode die Farbe sowie den Text des entsprechenden Buttons aus und
       speichern Sie diese Wert in geeigneten Properties des View Controllers der Detailansicht.
–      Überschreiben Sie die Methode loadView des View Controllers der Detailansicht, um dy-
       namisch die Rechtecke zu visualisieren. Fügen Sie dazu der View des ViewControllers eine
       entsprechende Anzahl farbiger Subviews hinzu.
–      Versehen Sie die Buttons der Startansicht mit geeigneten Layout-Constraints. Die Buttons
       sollen quadratisch sein und unabhängig von der Auflösung und der Orientierung des Bild-
       schirms immer dieselbe (maximale) Größe besitzen.
Praktikum iOS-Entwicklung im Sommersemester 2016 Übungsblatt 3
Praktikum iOS-Entwicklung – SS 16, Übungsblatt 3                                         5

Hinweis: Es lassen sich mehrere Segues von den UI-Elementen eines View Controllers A zu ein
und demselben View Controller B erzeugen.
Praktikum iOS-Entwicklung im Sommersemester 2016 Übungsblatt 3 Praktikum iOS-Entwicklung im Sommersemester 2016 Übungsblatt 3 Praktikum iOS-Entwicklung im Sommersemester 2016 Übungsblatt 3 Praktikum iOS-Entwicklung im Sommersemester 2016 Übungsblatt 3 Praktikum iOS-Entwicklung im Sommersemester 2016 Übungsblatt 3
Sie können auch lesen