Documentation

iOS-Swift-Shorttext.pdf
iOS-Swift.pdf
iOS-xcode.pdf
iOS-xcode-small.pdf Laden / Speichern
Spritverbrauch.pdf
BeispieleTableViewEditNewDel.pdf

TableView3-Projekt:
TableView3.zip

Transparente Bilder:

symboletransparent.zip
semesterbilder.zip
operationsbilder.zip

Overview:
iOSSamples.pdf

All Projects (2016):
Web-2016.7z
Web-2016.zip






Online-Help

plausi.txt (UInt)
plausi.txt (Int)
plausi2.txt with two values

uiPickerViewer Delegate-Funktion

uiTableView Delegate-Funktionen

Convert into the decimalsystem

Convert to a numbersystem from a decimalnumber

getHomeDir

getParent



Scripte

Kapitel Script (Eine Folie pro Seite)
(Powerpoint)
Script (Zwei Folien pro Seite)
(Powerpoint)
Zusätzliche Dateien
Layout layout.pdf layout-2.pdf  





Lecture from 19.12.2016

MessageBox:
BeispieleAlertController.pdf

Ini-Dateien:
iOSSpritverbrauch.zip

dices:

dices.zip






BackgroundImage

Name of the project Description Images, sourcecode, project
backgroundImage Project with Image as backgoud fpr a UIView Project: backgroundImage.zip

Tutorial:
Insert a UIImage into the UiViewController
Copy the images to the assets.xcassets
Insert Layout-Constraints
Set the transparency
- 1,0 no transparency
- 0,0 full transparency





Buttons with dices

Name of the project Description Images, sourcecode, project
ImageFilemanager Project with a tableview of directories and showing a list of images Project: button_with_dices.zip

Tutorial:
Copy the six images to the assets.xcassets
Copy a "blank-images" to the assets.xcassets
the "blank-images" must assign to each button
set the button with an image and no text
insert the button in an array
In the code set the button:
_if let image = UIImage(named: "W"+String(zahl)) {
___dicesl[i].setImage(image, for: .normal)
__}

The if-code a important!
if not then: Placeholder error








Lecture from 12.12.2016

Lecture from 12.12.2016
BeispieleTableViewImages.pdf
getHomeDir
getParentDir

Bilder.zip






ImageFileMangeWithTableView

Name of the project Description Images, sourcecode, project
ImageFilemanager Project with a tableview of directories and showing a list of images Images:
ImageFileView_01.png
ImageFileView_02.png

tutorial for the project:
BeispieleTableViewImages.pdf
Sourcecode:
ViewController.swift (now with ".." Item instead of the button)
DirItem.swift
ShowPictures.swift
Project: iOSTableViewImageFileManager.zip





Lecture from 05.12.2016

Lecture from 04.12.2016
BeispieleTableViewEditNewDel.pdf
tableview_staedte.txt
NavigationTableViewEditNewDelete.txt

Vorlage:
iOSTableViewEditNewDelete.zip

Master-Detail.PDF:
BeispieleMasterDetail.pdf






Lecture from 28.11.2016

Lecture from 28.11.2016
BeispieleSegues.pdf
BeispieleTableViewEditNewDel.pdf

tableview_staedte.txt
NavigationTableViewEditNewDelete.txt

Page_Projekte.zip






Lecture from 21.11.2016

Lecture from 21.11.2016
BeispielePages2.pdf

Tabbar2_Bilder.zip

iOS-Bilder-Pages.zip






Documentation

Swift-Documentation:

iOS-Swift.pdf (Version from 13.11.2016)


XCode-Doku:

iOS-xcode.pdf (Version from 26.11.2016)


Symbols:

Symbole.zip



Inhalt

BFO im Bereich der MedieninformatikInhalt der Vorlesung:
Einleitung,
Geschichte, xcode
Kennenlernen der Sprache Swift
„Spielen“ mit dem Playground
interaktiver „Interpreter“Entwicklung von vielen kleinen Apps
Einfache UI-ElementeLayouts
Core-Data
Sensoren

Prüfung:
Mündliche Prüfung
oder
Projektarbeit während der Vorlesung

Voraussetzungen:
Grundkenntnisse in der Programmierung

Vorlesungsform:
Vorlesung mit vielen Beispielen

SWS: 0+0+4



Beispiele aus der Vorlesung

Beispiel Funktionen:

00_Funktionen.txt


Aufgabe MinMaxSumme:

Aufgabenstellung

01_MinMaxSumme-Loesung.txt



Beispiel Klassen:

02_Schiff_Dampfer.txt



Aufgabe Klassen:

Aufgabenstellung

03_KFZPKWLKW-Loesung.txt



Beispiele

Name of the project Description Images, sourcecode, project
Stepper Sample with a Stepper Image: iOSStepper.png
Sourcecode: iOSStepper.txt
Project: iOSStepper.zip
Slider Sample with a Slider Image: iOSSlider.png
Sourcecode: iOSSlider.txt
Project: iOSSlider.zip
PickerView, Liste Sample with a PickerView.
Only a list of a then class "stadt" (city)
Image: iOSPickerView.png
Sourcecode: iOSPickerView.txt
Project: iOSPickerView.zip
PickerView, with tow columns Two columns as input:
- Decimalnumber
- targetsystem
After the selection of the 2 numbers, convert to the new number
Image: iOSPickerView_Binary_2_Columns.png
Sourcecode: iOSPickerView_Binary_2_Columns.txt
Project: iOSPickerView_Binary_2_Columns.zip
DatePicker Sample with a DatePicker Image: iOSDatePicker.png
Sourcecode: iOSDatePicker.txt
Project: iOSDatePicker.zip
ProgressView Sample with a ProgressView, ProgressBar Image: iOSProgressView.png
Sourcecode: iOSProgressView.txt
Project: iOSProgressViewr.zip
TextView Sample with a TextView and a ScrollView, important Images:
textview1.png
textview2.png
scrollview.png

Sourcecode:
iOSTextView.txt

Project:
iOSTextView.zip

Remark:
Die onChange-Methode wird über ein Delegate erreicht.
class EditViewController: UIViewController, UITextViewDelegate {
@IBOutlet var tBemerkung: UITextView!

override func viewDidLoad() {
super.viewDidLoad()
tBemerkung.delegate=self
}

func textViewDidChange(textView: UITextView) {
print(tBemerkung.text!)
}
}

}
ActivityIndikator Sample with a ActivityIndikator. Not really correct. Image: iOSActivityIndikator.png
Sourcecode: iOSActivityIndikator.txt
Project: iOSActivityIndikator.zip
TabbedBar Sample with a TabbedBar. The project has two views. One can show both (Buttons from bottoms) Image: iOSTabbedBar1.png
Image: iOSTabbedBar2.png
Sourcecode: FirstViewController.txt
Sourcecode: SecondViewController.txt
Project: iOSTabbedBar.zip
Spritverbrauch Calc the petrol per 100 km.
Imput: Kilometer and Liter
Sourcecode: iOSSpritverbrauch.txt
Project: iOSSpritverbrauch.zip
uiTabbedBarSymbole uiTabbedBar with own symbols
The symbols must with one color,
but the background must transparence.
Image: uiTabbedBarSymbole01.png (Eintragen der Symbole)
Image: uiTabbedBarSymbole02.png
Image: uiTabbedBarSymbole03.png
Image: uiTabbedBarSymbole04.png
Project: uiTabbedBarSymbole.zip
uiButtonWithSymbol uiButton with a symbol Image: uiButtonWithSymbol01.png (Eintragen der Symbole)
Image: uiButtonWithSymbol02.png
Image: uiButtonWithSymbol03.png
Project: uiButtonWithSymbol.zip
uiImageView uiImageView with pictures Image: uiImageView01.png (Eintragen der Bilder)
Image: uiImageView02.png

Sourcecode: uiImageView.txt
Project: uiImageView.zip
uiGrafik1 Graphics with drawLine
The project create a "component"
Image: uiGrafik1_01.png Linie
Image: uiGrafik1_02.png Linie mit Text
Image: uiGrafik1_03.png FarbGradient
Image: uiGrafik1_04.png Bogen
Image: uiGrafik1_05.png Bezier
Image: uiGrafik1_06.png Bezier

DrawText Swift
Sourcecode of the graphic-class:
uiGrafik1.txt
Project: uiGrafik1.zip
uiGame1 Game from Apple from xcode 7.0 Image: uiGame1_01.png
Image: uiGame1_02.png

Sourcecode: uiGame1.txt
Project: uiGame1.zip


Projectsamples with Layout

Projektname Beschreibung Bilder, Quellcode, Projekt
Layout
1. Beispiel
Anzeige eines Labels
Eingabe mit einem Textfeld
Label in der 1. Zeile
Textfeld in der 2. Zeile
Bilder:
uiLayout1a.png
uiLayout1b.png
uiLayout1c.png
uiLayout1d.png

Quellcode: uiLayout1.txt

Projekt: uiLayout1.zip

Vorgehensweise: uiLayout1.pdf
Layout
2. Beispiel
Anzeige eines Labels
Eingabe mit einem Textfeld
Label in der 1. Zeile
Textfeld in der 1. Zeile, neben dem Label
Image: uiLayout2.png
Sourcecode: uiLayout2.txt
Project: uiLayout2.zip
Vorgehensweise: uiLayout2.pdf
Layout
3. Beispiel
Anzeige zweier Labels
Eingabe eines Vornamens mit einem Textfeld
Eingabe eines Nachnamens mit einem Textfeld
Beide
Images:
uiLayout3a.png
uiLayout3b.png
Sourcecode: uiLayout3.txt
Project: uiLayout3.zip
Vorgehensweise: uiLayout3.pdf
Layout
4. Beispiel
Anzeige zweier Labels und zweier Textfelder in EINER Zeile
Die Textfelder haben die gleiche Breite
Images:
Fertiges Layout mit unterschidlicher Breite: uiLayout4a.png
Fertiges Layout mit gleicher Breite: uiLayout4b.png
Simulator: uiLayout4c.png
Simulator: uiLayout4d.png
Anzeige der Constraints: uiLayout4e.png
Markieren der beiden Textfelder: uiLayout4f.png
Eintragen eines Breitenverhältnis: uiLayout4g.png
Ergebnis: uiLayout4h.png

Sourcecode: uiLayout4.txt

Project: uiLayout4.zip

Vorgehensweise: uiLayout4.pdf
Layout
5. Beispiel
Anzeige zweier Labels
Eingabe eines Vornamens mit einem Textfeld
Eingabe eines Nachnamens mit einem Textfeld
Mit StackViews
Sourcecode: uiLayout5.txt
Project: uiLayout5.zip

Ab Version 7,0 !


Samples with multiple Pages

Projektname Beschreibung Bilder, Quellcode, Projekt
Tab Bar Die "SubViews" werden unten angezeigt.
Die Anzahl ist also beschränkt.
Bilder:
Tabbar01.png (1. View)
Tabbar02.png (2. View)
Tabbar03.png (neuer 3. View)
Tabbar04-Symbol.png (Auswahl des Symbols)

Projekt: uiTabbedBased.zip
Navigation "Anzeige" eines Menüs mittels der Komponente Navigation Images:
Navigation01.png (Setzen des Startviews)
Navigation02.png
Navigation03.png
Navigation04.png

Project: uiNavigation.zip
Segue1 Jump to a second ViewController with a button
The jump back to the first ViewController a programmed with a unwind-methods
Images:
Segue1a.png
Segue1b.png

Project: Segues1.zip
Segue2 The project has one MainViewController and three ViewController.
The MainViewController has three buttons, which jump to each ViewController.
You can get easy back to the MainViewController with a button.
This button you create with the button "exit".
Before you create the jump, you must insert a unwind-method.
Images:
To import a navigationcontroller, use the menu "editor/Embed In".
Then you get only a ViewController with a navigationcontroller.
Segue2a.png
Segue2b.png

BeispieleSegues.pdf
Project: Segues2.zip
Segue3 The project has one MainViewController and three ViewController.
But the three ViewController are sequentiell.
Each ViewController has one buttons, to jump to the next ViewController.
You can get easy back to the previous ViewController with a button.
This button you create with the button "exit".
Before you create the jump, you must insert a unwind-method.
Images:
To import a navigationcontroller, use the menu "editor/Embed In".
Then you get only a ViewController with a navigationcontroller.
Segue3a.png
Segue3b.png

iOSSegues3_ViewController.swift
iOSSegues3_ViewController2.swift
iOSSegues3_ViewController3.swift
BeispieleSegues.pdf
Project: Segues3.zip
Master-Details,
Version 6
Master-Detail mit einem TableView, Version 6 Images of the Version 7:
MasterDetail_00.png
MasterDetail_01.png
MasterDetail_02.png
MasterDetail_03.png
MasterDetail_04.png
MasterDetail_05.png
MasterDetail_06.png
MasterDetail_07.png

Sourcecode:
MasterDetail-Stadt6.txt
MasterDetail-MasterViewController6.txt
MasterDetail-DetailViewController6.txt

Project: iOSMasterDetailV6.zip
Master-Details Master-Detail mit einem TableView Images:
MasterDetail_00.png
MasterDetail_01.png
MasterDetail_02.png
MasterDetail_03.png
MasterDetail_04.png
MasterDetail_05.png
MasterDetail_06.png
MasterDetail_07.png

Sourcecode:
MasterDetail-Stadt.txt
MasterDetail-MasterViewController.txt
MasterDetail-DetailViewController.txt

Project: iOSTableViewMasterDetail.zip
TableView mit eigenen Schaltern TableView mit eigenen Schaltern Images:
iOSTableViewOwnNavigator_01.png
iOSTableViewOwnNavigator_02.png
iOSTableViewOwnNavigator_03.png
iOSTableViewOwnNavigator_04.png
iOSTableViewOwnNavigator_05.png
iOSTableViewOwnNavigator_06.png
iOSTableViewOwnNavigator_07.png
iOSTableViewOwnNavigator_08.png

Sourcecode:
iOSTableViewOwnNavigator-Stadt.txt
iOSTableViewOwnNavigator-ViewController.txt
iOSTableViewOwnNavigator-EditViewController.txt

Project: iOSTableViewOwnNavigator.zip


Problems and solutions in Swift

Keywords Description Beschreibung Solution
String Int
Version 6
Convert String to Int Konvertieren eines Strings in einer Int-Variablen // Version 6 hat no function Int("12")
var zahl1=uiInput.text.toInt()
// please use equal nil, not !=nil
if zahl1==nil {
_uiLabel.text="error"
}
else {
_let i:Int=zahl1!
_uiLabel.text="zahl1: "+String(i)
}
String Int
Version 7
Convert String to Int Konvertieren eines Strings in einer Int-Variablen let input:String=uiInputInt.text!
var zahl1=Int(input)
if zahl1==nil {
_uiLabel.text="error"
}
else {
_let i:Int=zahl1!
_uiLabel.text="zahl1: "+String(i)
}
String Float
String Double
Version 6
Consert String to Double Konvertieren eines Strings in einer Double-Variablen // Version 6 hat no function Double("12.3")
let zahl1=(uiInput.text! as NSString).doubleValue
// please use equal nil, not !=nil
if zahl1==nil {
_uiLabel.text="error"
}
else {
_let value:Double=zahl1!
_uiLabel.text="zahl1: "+String(value)
}
String Float
String Double
Version 7
Consert String to Double Konvertieren eines Strings in einer Double-Variablen let input:String=uiInputInt.text!
var zahl1=Double(input)
if zahl1==nil {
_uiLabel.text="error"
}
else {
_let value:Int=zahl1!
_uiLabel.text="zahl1: "+String(".f",value)
_uiLabel.text="zahl1: "+String(".4f",value)
}
Double String Convert a Double to a String Konvertieren eines Double-Wertes in einer Double-Variablen String(123.44)
random-Number
Zufallsszahl
How can I create a random-Number? Wie kann ich eine Zufallszahl erzeugen? let zahl:Int = Int(arc4random_uniform(1000+1))
let zahl:Double = arc4random_uniform(1000+1)





Format a number to a string

To convert a variable, one use the same code you uses with the c-function printf.

Convert a Int to a String:

%d: 32 Bit sign-integer number
%u: 32 Bit unsigned number
%x: 32 Bit unsigned number, with hexadecimal-codeConvert a Float to a String:
%f: float number

%10.3f: float number
_7 digits for the numbers before the decimal point
_3 digits for the number after the decimal point

%.3f: float number
any number before the decimal point
_3 digits for the number after the decimal point

Convert a Double to a String:
%f: double number

%10.3f: double number
_7 digits for the numbers before the decimal point
_3 digits for the number after the decimal point

%e: double number
the number convert in exponetial-system: 1.34E+3


Format a String:
%@: String-Format






CoreData / Decode / Encode

Name of the project Description Images, sourcecode, project
Serialize eines Arrays Interne Klasse "Kunde"
Kunden werden gespeichert in einem Array
Speichern in eine Datei mittels encoder
Laden aus einer Datei mittels decoder
Image:
uiSaveLoadArray01.png

Sourcecode: uiSaveLoadArray.txt
Project: uiTabbedBased.zip





SaveData:NSUserDefaults

NSUserDefaults
An NSUserDefaults is the same code like an ini-files.
You can store ans load a variable with a key.
With this functions, you can store values in the plist-file (properties)

Examples for save:
let nr:Int=41
let defaults=NSUserDefaults.standardUserDefaults()
defaults.setObject(nr,forKey: "nr")
defaults.setInteger(nr,forKey: "nr")
let str:String="Norman Bates"
let defaults=NSUserDefaults.standardUserDefaults()
defaults.setObject(str,forKey: "name")

Examples for load:
var nr:Int=0
let defaults=NSUserDefaults.standardUserDefaults()
nr=defaults.integerForKey("nr")
// a int, float or a double has ever a value, if the key not exist, you get the number 0
var str:String=""
let defaults=NSUserDefaults.standardUserDefaults()
str=defaults.stringForKey("name")!
// a string can be nil !!!

Function for save:
defaults.setObject(nr,forKey: "nr")

Function for load:
let nr:Int=defaults.integerForKey("nr")
let b:Bool=defaults.boolForKey("withShadow")
let myArray[Int]=defaults.arrayForKey("myArray")
let value:Float=defaults.floatForKey("price")
let value:Double=defaults.doubleForKey("price")
let obj:AnyObject=defaults.objectForKey("custom")
let strArray:[AnyObject]=defaults.stringArrayForKey("customs")

Function for save:
defaults.setObject(str,forKey: "name")
defaults.setBool(true,forKey: "withShadow")
defaults.setInteger(1234,forKey: "age")
defaults.setFloat(12.34,forKey: "price")
defaults.setDouble(12.34,forKey: "price")
defaults.setObject(myArray,forKey: "customs")
defaults.setObject(myDictionary,forKey: "customs")






Beispiele Sensoren

Projektname Beschreibung Bilder, Quellcode, Projekt
Kamera
Camera
Aufnahme mit der internen Kamera
Anzeige mit einem uiImageView
Bilder:
iOSKamera01.png
iOSKamera02.png

Quellcode: iOSKamera.txt

Projekt: iOSKamera.zip
Mikrofon Aufnahme mit dem Mikrofon
Wiedergabe mittels Schalter
Bilder:
iOSMikrofon01.png
iOSMikrofon02.png
iOSMikrofon03.png
iOSMikrofon04.png
iOSMikrofon05.png
Quellcode: iOSMikrofon.txt

Projekt: iOSMikrofon.zip
Beschleunigungssensor
iOSAccelerometer
Abfrage des Beschleunigungssensor Bilder:
iOSAccelerometer1_01.png

Quellcode: iOSAccelerometer1.txt

Projekt: iOSAccelerometer1.zip
Beschleunigungssensor, Teil 2
iOSAccelerometer2
Abfrage des
Beschleunigungssensor
Neigungssensor
Anzeige mittels Viereck
Bilder:
iOSAccelerometer2_01.png

Quellcode: iOSAccelerometer2.txt

Projekt: iOSAccelerometer2.zip
GPS-Sensor Abfrage der GPS-Daten
·Man benötigt das Framework "CoreLocation"
·In pList muss eine User-Abfrage eingerichtet werden
Bilder:
iOSGPS01.png
iOSGPS02.png
iOSGPS03.png
iOSGPS04.png
iOSGPS05.png
iOSGPS06.png
iOSGPS07.png
iOSGPS08.png

Quellcode: iOSGPS.txt

Projekt: iOSGPS.zip





Problems and solutions in xcode

Keywords Description Beschreibung Solution
xcode copy ui-elements How can I copy ui-elements to another projekt? Wie kann ich die UI-Elemente in ein anderes Projektes kopieren? - Select the main-ui-element in the ui-tree
- menu edit, item "copy"
- change to the second project
- select the view-controller in the tree
- menu edit, item "paste"





Literatur

iOS-Apps programmieren mit Swift
Christian Bleske
dpunkt.verlag
ISBN 978-3-86490-263-5

Swift 2
Michael Kofler
Rheinwerk
ISBN: 978-3-8362-3651-5

Durchstarten mit Swift
Stefan Popp & Ralf Peters
O‘Reilly
ISBN: 978-3-96009-005-2




Druckbare Version


uiTableView