2016-07-14 5 views
1

Ich habe eine einfache Erweiterung für UITraitCollection:Wie erstellt man UITraitCollection mit beiden Größenklassen im Code?

extension UITraitCollection { 

    var isIpad: Bool { 
     return horizontalSizeClass == .Regular && verticalSizeClass == .Regular 
    } 
} 

Früher habe ich für diesen (unter Verwendung von TDD) schreiben Tests erforderlich:

let traitCollection = UITraitCollection(verticalSizeClass: .Regular) //the init is either for vertical or horizontal at time 
traitCollection.horizontalSizeClass = .Regular //error 

XCTAssertTrue(traitCollection.isIpad) 

Aber der Fehler ist:

Kann der Eigenschaft nicht zugewiesen werden: horizontalSizeClass ist eine Eigenschaft nur erhalten.

Was soll ich dann tun?

Antwort

1

Ok, ich habe gefunden Lösung:

let compactTraitCollection = UITraitCollection(traitsFromCollections: [UITraitCollection(verticalSizeClass: .Compact), UITraitCollection(horizontalSizeClass: .Compact)]) 
XCTAssertFalse(compactTraitCollection.isIpad) 

let regularTraitCollection = UITraitCollection(traitsFromCollections: [UITraitCollection(verticalSizeClass: .Regular), UITraitCollection(horizontalSizeClass: .Regular)]) 
XCTAssertTrue(regularTraitCollection.isIpad) 
Verwandte Themen