2017-12-07 4 views
2

Wie kann ich meinen Code zur Identifizierung des Geräts in der Datei Extension platzieren?Gerät von Erweiterungsdatei erkennen (Swift)

if UIDevice().userInterfaceIdiom == .pad { 
     switch UIScreen.main.nativeBounds.height { 
     case 2048: 
      print("iPad Pro 9.7/Air") 
     case 2224: 
      print("iPad Pro 10.5") 
     case 2732: 
      print("iPad Pro 12.9") 
      displayResultLabel.frame = CGRect(x: 2, y: 90, width: 370, height: 91) 
      displayResultLabel.font = displayResultLabel.font.withSize(105) 
     default: 
      print("unknown") 
     } 
    } 
+0

Warum brauchen Sie Erweiterungsdatei? – Yitzchak

+0

@Yitzchak Um nicht Platz in der Hauptdatei zu belegen – B2Fq

+0

Muss es eine Erweiterung sein? Oder kann es eine Klasse sein? fügen Sie einfach eine neue ** swift class file ** hinzu, die automatisch zu Ihrem Build hinzugefügt wird, den Code dort in eine Erweiterung oder eine Klasse einfügen .. Es wird funktionieren, Sie können es in einer anderen Datei verwenden – Yitzchak

Antwort

2
extension THE_NAME_OF_CLASS_TO_EXTEND { 

    func printDevice() { 
     if UIDevice().userInterfaceIdiom == .pad { 
      switch UIScreen.main.nativeBounds.height { 
      case 2048: 
       print("iPad Pro 9.7/Air") 
      case 2224: 
       print("iPad Pro 10.5") 
      case 2732: 
       print("iPad Pro 12.9") 
       displayResultLabel.frame = CGRect(x: 2, y: 90, width: 370, height: 91) 
       displayResultLabel.font = displayResultLabel.font.withSize(105) 
      default: 
       print("unknown") 
      } 
     } 
    } 
} 

Dann könnten Sie verwenden:

THE_INSTANCE_OF_THE_CLASS_THAT_HAS_THE_NAME_OF_CLASS_TO_EXTEND.printDevice() 

Also Sie müssen nur diesen Code in eine neue Datei kopieren.

Ersetzen Die THE_NAME_OF_CLASS_TO_EXTEND mit dem Namen der Klasse

Und das .. THE_INSTANCE_OF_THE_CLASS_THAT_HAS_THE_NAME_OF_CLASS_TO_EXTEND mit dem Namen Ihrer Instanz dieser Klasse ersetzen, als es funktioniert =]

+1

thx @Moritz Ihre's richtig – Yitzchak

+0

in Erweiterung Datei Fehler "Verwendung von nicht deklarierten type 'THE_NAME_OF_CLASS_TO_EXTEND' " – B2Fq

+0

Ändere es in den Namen DEINE Klasse (Übrigens habe ich gerade den Code bearbeitet .. rekopiere jetzt) ​​ – Yitzchak

Verwandte Themen