Kategorie: SwiftUI
-
Zu TextEditor in Form-View scrollen
Im Zuge eines Projekts stießen meine Kollegen und ich auf das folgende Problem: Ist ein TextEditor Teil einer Form-View, scrollt jene Form-View nicht automatisch zum TextEditor, wenn dieser den Fokus erhält. Das führt dazu, dass die virtuelle Bildschirmtastatur sich unter iOS über den aktiven TextEditor legt, wenn dieser sich als Teil einer Form-View am unteren…
-
Kamerazugriff via SwiftUI – Teil 1
Grundlagen Bis heute fehlt SwiftUI (leider) ein direkter Zugriff auf die Kamera des iPhone. Erfreulicherweise ist es aber ein überschaubarer Aufwand, mittels Representable die UIKit-Elemente zum Kamerazugriff auch in SwiftUI verfügbar zu machen. Die Grundlage stellt diesbezüglich die Klasse UIImagePickercontroller dar. Diese Klasse ist bereits seit iOS 2 Teil von UIKit und ermöglicht es in…
-
Die zweite Auflage des Swift-Handbuchs erscheint am 10. Dezember 2021
In diesem Artikel möchte ich auf ein Herzensprojekt aufmerksam machen, das schon sehr bald in den Regalen deutscher Buchhändler zu finden sein wird: Bereits am 10. Dezember 2021 erscheint die zweite und aktualisierte Auflage meines Swift-Handbuchs! Und ich bin sehr froh, nach sehr vielen Wochen und Monaten des Schreibens zum ersten Mal ganz konkret über…
-
Neuerungen in SwiftUI – Teil 7
Materials Mit Materials gibt es in SwiftUI neue Möglichkeiten, Hintergründe für Views zu erzeugen. Materials orientieren sich hierbei am Inhalt, der hinter einer View liegt, und lassen diesen Inhalt ein wenig hindurch scheinen. Wie stark der Hintergrund zu sehen ist, hängt vom verwendeten Material ab. Insgesamt stehen die folgenden Materials zur Verfügung (es handelt sich…
-
QR-Code-Scanner in SwiftUI mit AVFoundation
Das AVFoundation-Framework ermöglicht es mit überschaubarem Aufwand, einen QR-Code-Scanner auf Basis eines eigenen View-Controllers umzusetzen. Im Zuge eines aktuellen Projekts habe ich genau einen solchen benötigt und – das möchte ich an dieser Stelle nicht verschweigen – eine enorm hilfreiche Vorlage bei Hacking with Swift gefunden (siehe Links am Ende des Artikels). Diese Vorlage habe…
-
Neuerungen in SwiftUI – Teil 6
Text Selection Neben der Eingabe von Text ist es in manchen Fällen erwünscht, den Nutzer Text aus der eigenen App auswählen zu lassen. Nach der Text-Selektierung könnte man dann passende Optionen anbieten, beispielsweise das Kopieren des Inhalts in die Zwischenablage oder das anderweitige Teilen des gewählten Textes. Bei Views wie Text war solch eine Selektierung…
-
Neuerungen in SwiftUI – Teil 5
Neue Style-Deklarationen Eine kleine aber nicht minder feine Anpassung hat die neueste SwiftUI-Version in Bezug auf Style-Deklarationen zu bieten. Generell bieten verschiedene Views in SwiftUI wie Button oder List die Möglichkeit, ihr Aussehen mittels Style anzupassen. Diese Styles sind in der Regel konform zu einem spezifischen Protokoll. Um sie zu verwenden, ruft man zunächst den…
-
Neuerungen in SwiftUI – Teil 4
Swipe Actions Eines der Highlights in der neuesten SwiftUI-Version stellen Swipe Actions dar. Hierbei handelt es sich um Aktionen, die nach einer Wischgeste über eine Zelle zum Vorschein kommen. Man kennt diese Aktionen bereits aus vielen Apps, beispielsweise Mail. Wischt man in der Listenansicht von rechts nach links über eine Nachricht, erscheint ein Button mit…
-
Neuerungen in SwiftUI – Teil 3
Separator-Anpassungen Mit Xcode 13 halten auch neue Konfigurationsmöglichkeiten in iOS/iPadOS 15 Einzug, die es ermöglichen, das Erscheinungsbild von Trennlinien in Listen anzupassen. So erlaubt es der neue listRowSeparatorTint(_:edges:)-Modifier, eine eigene Farbe für eine Trennlinie festzulegen. Man ruft den Modifier direkt auf der Zelle auf, deren Trennlinie man anpassen möchte. Das nachfolgende Listing zeigt ein Beispiel.…
-
Neuerungen in SwiftUI – Teil 2
AsyncImage Mit Xcode 13 steht uns in SwiftUI eine neue View namens AsyncImage zur Verfügung. Die ermöglicht es, ein Bild auf Basis einer URL asynchron zu laden. Das Bild wird automatisch angezeigt, sobald der Download erfolgreich abgeschlossen wurde. Um eine AsyncImage-Instanz zu erzeugen, braucht es wenigstens die URL zum gewünschten Bild, wie der folgende Aufruf…