2017-05-10 1 views
0

ich eine App zu programmieren, ich versuche, Bildschirme zu ändern, wenn es um den Bereich einer Bake eintritt und wurden im Anschluss an dieses Tutorial: https://www.hackingwithswift.com/example-code/location/how-to-detect-ibeaconsAnzeigen von Bildern anstelle von Farben, wenn in Beacon Bereich

Das Tutorial den Code verwendet:

func updateDistance(_ distance: CLProximity) { 
UIView.animate(withDuration: 0.8) { 
    switch distance { 
    case .unknown: 
     self.view.backgroundColor = UIColor.gray 

    case .far: 
     self.view.backgroundColor = UIColor.blue 

    case .near: 
     self.view.backgroundColor = UIColor.orange 

    case .immediate: 
     self.view.backgroundColor = UIColor.red 

, um der App zu sagen, dass sie in verschiedene Farben wechseln soll, abhängig davon, wie weit das Beacon in Bezug auf das Gerät ist. Ich möchte, dass meine App das Gleiche tut, aber anstatt Farben anzuzeigen, möchte ich, dass sie Bilder anzeigt.

Ich habe versucht, die UIImageView verwenden, aber es hat mich nicht mit der Option bietet ein ähnliches Bild zu wählen, wie es läßt mich eine Farbe auswählen, wenn UIColor mit

kann jemand mir erklären, wie es Bilder machen anzuzeigen statt Farben?

ich Xcode bin mit 8.3.2

+0

@ Paulw11 so anstelle einer Farbe nach 'UIColor.' Ich sollte das Bild verknüpfen, das ich anzeigen möchte? – Eggonbread

+0

Entschuldigung, ich habe Ihre Frage falsch gelesen. Mit einem 'UIImageView' sind Sie auf dem richtigen Weg - Sie müssen ihm lediglich in den verschiedenen Case-Anweisungen ein' UIImage' zuweisen. – Paulw11

+0

@ Paulw11 ist das mit 'var UIImage =" Bildname "'? – Eggonbread

Antwort

1

Ok, müssen Sie mehrere Schritte unternehmen:

in Interface Builder gehen und eine Bildansicht erstellen. Richten Sie die Layout-Einschränkungen so ein, dass sie an der gewünschten Stelle auf dem Bildschirm platziert werden, und legen Sie die Beschränkungen fest, um Höhe und Breite der Höhe und Breite der Bilder anzupassen, die Sie anzeigen möchten.

Nun öffnen Sie ein Assistent-Editor-Fenster und stellen Sie es auf "automatisch", was dazu führen sollte, dass es die Quelle für Ihren View-Controller anzeigt.

Ziehen Sie mit gedrückter Strg-Taste aus Ihrer Bildansicht in den oberen Bereich des View-Controllers, um ein IBOutlet zu erstellen. Nennen wir es anImageView.

Erstellen Sie im Asset-Katalog Ihrer App Bilder mit den Zielauflösungen, die Sie unterstützen möchten. Sie möchten wahrscheinlich @ 2x und @ 3x große Bilder für Retina-Geräte und für die 6+. Sie benötigen keine Nicht-Retina-Bilder mehr, da iOS 9 und höher keine Nicht-Retina-Geräte mehr unterstützt.

Nehmen wir an, Sie haben Einträge in Ihrem Asset-Katalog namens "unknown.png", "far.png", "near.png" und "sofort.png", die alle die gleichen Dimensionen haben (sagen Sie 100x100 Punkte mit @ 2x . und @ 3x Versionen, nur zum Beispiel)

umschreiben sie nun Ihre Funktion wie folgt aus:

func updateDistance(_ distance: CLProximity) { 
    switch distance { 
    case .unknown: 
     anImageView.image = UIImage(named: "unknown") 

    case .far: 
     anImageView.image = UIImage(named: "far") 

    case .near: 
     anImageView.image = UIImage(named: "unknown") 

    case .immediate: 
     anImageView.image = UIImage(named: "immediate") 
} 

das sollte es tun.

Verwandte Themen