Jahresarchiv 20. Dezember 2019

VonTobias Stephan

Navigation Controller Swift Back Button

Zu diesem Titel findet man zahlreiche Beiträge. In diesem Beispiel soll von dem Button „Geschwindigkeit lernen“ der nächste ViewController aufgerufen werden. Der Zurück-Button ist hier total wichtig…denn sonst gibt es keinen Weg zurück

dasdf

Das Segue hab ich einfach mit Rechts-Click auf den Button erstellt.

 

 

 

 

VonTobias Stephan

Swift 5.1 JSON to Object auslesen

Hier ein einfaches Beispiel, wie man ein Json String auslesen bzw. parsen kann.

let str = "{\"names\": [\"Bob\", \"Tim\", \"Tina\"]}"
let data = Data(str.utf8)

do {
    // Sicher stellen, dass es sich um das korrekte JSON Format handelt
    if let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] {
        // try to read out a string array
        if let names = json["names"] as? [String] {
            print(names)
        }
        for (key, value) in json {
            print("\(key) : \(value)")
        }
    }
} catch let error as NSError {
    print("Failed to load: \(error.localizedDescription)")
}
VonTobias Stephan

Einfache Einmaleins App

Dies Einmaleins App ist wirklich mal einfach. Hier gilt, wenn einfach einfach einfach ist. Übung macht den Meister! Geübt werden kann wahlweise im Zahlenraum von 1 bis 10 oder von 1 bis 100. Diese App ist für Grundschulkinder gedacht. Mit 3 verschiedenen Smileys wird der Leistungsstand angezeigt.

Außerdem wird die Übungszeit in Minuten angezeigt. Die Übungszeit wird jedoch nur mitgezählt, wenn Ihr Kind aktiv mit der App übt. So kann man zur Tagesaufgabe 5 Minuten App üben ansetzen. Das verbessert die Bearbeitungszeit von Aufgaben schon extrem. Spielerisch zum Erfolg!

VonTobias Stephan

Swift 5 App im Hintergrund erkennen (app moved to background)

Mit diesen Codzeilen kann man erkennen, ob eine App in den Hintergund geschoben wird.

 override func viewDidLoad() {
        super.viewDidLoad()

        let notificationCenter = NotificationCenter.default
        notificationCenter.addObserver(self, selector: #selector(appMovedToBackground), name: UIApplication.didEnterBackgroundNotification, object: nil)


    }

    @objc func appMovedToBackground() {
        print ("App moved to Background")
    }

VonTobias Stephan

Swift 5 App im Vorderung erkennen (app moved to foreground)

Manchmal ist es sinnvoll zu erkenne, ob die eigene App in den Vordergrund geschoben wird. Mit diesen paar Codezeilen ist das leicht zu ermitteln.

   override func viewDidLoad() {
        super.viewDidLoad()
        

       

        let notificationCenter = NotificationCenter.default
        notificationCenter.addObserver(self, selector: #selector(appMovedToForeground), name: UIApplication.willEnterForegroundNotification, object: nil)


    }

    @objc func appMovedToForeground() {
        //do stuff
    }

VonTobias Stephan

Swift 5 tap gesture Geste

Diese paar Zeilen Code helfen schnell zu verstehen wie man einem Image die Tap Geste beibringt.

   
override func viewDidLoad() {
        super.viewDidLoad()



        self.imgPlacesPic.isUserInteractionEnabled = true;
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapGesture))
        imgPlacesPic.addGestureRecognizer(tapGesture)
    }

    @objc func tapGesture() {

        performSegue(withIdentifier: "FromMainToImages", sender: self)
    }
VonTobias Stephan

Swift 5 Mapkit pins hinzufügen MapView

Mit dieser einfachen Funktion kann man einen Pin zur MapView hinzufügen.

func addPin(latitude: Double, longitude: Double, title: String, subtitle: String) {
        let annotation = MKPointAnnotation()
        let centerCoordinate = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
        annotation.coordinate = centerCoordinate
        annotation.title = title
        annotation.subtitle = subtitle

        mapView.addAnnotation(annotation)

}
Beispiel für das setzen von Pins
VonTobias Stephan

Swift 5 Notification Center lokale Benachrichtigung darstellen

Mit diese kurzen Sample kann man das einfach mal eben ausprobieren. Dieses Snippet unter die viewDidLoad Methode packen und von dort aus aufrufen.

 override func viewDidLoad() {
        super.viewDidLoad()

        self.SendLocalNotification(Title: "Titel der Benachrichtiung", Body: "Inhalt der Nachricht")
}

Hier einfach mal kurz zusammengefasst.

 func SendLocalNotification(Title: String,Body : String)
    {
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.alert,.sound]) { (granted, error) in
            print("...Fehler hier behandeln")

        }

        let content = UNMutableNotificationContent()
        content.title = Title
        content.body = Body
        content.sound = .default

        let date = Date().addingTimeInterval(10)
        let dateComponents = Calendar.current.dateComponents([.year,.month,.weekday, .hour,.minute,.second], from: date)
        print(date)
        let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)

        let uuidString = UUID().uuidString
        let request = UNNotificationRequest(identifier: uuidString, content: content, trigger: trigger)
        center.add(request) { (error) in
            if error != nil {
                print (error?.localizedDescription ?? "")

            }
        }
    }
VonTobias Stephan

App Geschwindigkeitswarner iPhone

Die neue App von eXODA hilft Dir Deine Geschwindigkeit einzuhalten. Mit einem Touch auf den GPS Button merkt sich die App Deine Position und bietet Dir die aktuelle Geschwindigkeit zum Merken zur Auswahl. Diese Information stellst Du damit auch anderen Benutzern zur Verfügung. Der nächste Benutzer, der diesen Wegpunkt passiert, profitiert von Deiner Information. Selbstverständlich dient das auch Dir selber. In der angezeigten Straßenkarte kannst Du die Wegpunkte als rote Pins erkennen, die Du oder andere Benutzer erzeugt haben. Du bist selber für die Geschwindigkeit verantwortlich. Außerdem zeigt Dir die App auch besondere Stellen (POI – Point of Interest) an. Das kann auch einer der beliebten Fotografen sein, die Dir ein Foto gleich mit Rechnung zusenden.

VonTobias Stephan

Swift 5 Bildschirmsperre entfernen bzw. verhindern Xcode 11

Mit dieser einfachen Zeile kann man die Bildschirmsperre verhindern. Manche App wie Navigationstools möchten keine Bildschirmsperre. Einfach diese Zeile an der richtigen Stelle einfügen.

application.isIdleTimerDisabled = true

Die richtige Stelle findest Du in der AppDelegate.swift.