AdaptiveElements/Design.swift
/*  | 
Copyright (C) 2016 Apple Inc. All Rights Reserved.  | 
See LICENSE.txt for this sample’s licensing information  | 
Abstract:  | 
The ExampleContainerViewController can look and act differently depending on its size.  | 
We call each way of acting differently a "design".  | 
Design is a struct that encapsulates everything that distinguishes one design from another.  | 
Its definition is specific to this particular sample app, but you may want to use the  | 
same concept in your own apps.  | 
*/  | 
import UIKit  | 
struct Design { | 
// A Design has two properties:  | 
// 1. Whether to be horizontal or vertical  | 
let axis: UILayoutConstraintAxis  | 
// 2. Whether the elements inside are small or large  | 
    enum ElementKind { | 
case small  | 
case large  | 
}  | 
let elementKind: ElementKind  | 
/*  | 
We also implement a computed read-only property, which returns the identifier  | 
of the view controller in the storyboard that this design should use.  | 
*/  | 
    var elementIdentifier: String { | 
        switch elementKind { | 
case .small: return "smallElement"  | 
case .large: return "largeElement"  | 
}  | 
}  | 
}  | 
/// Allow Designs to be compared, e.g. `oldDesign == newDesign` or `oldDesign != newDesign`.  | 
extension Design: Equatable { } | 
func == (left: Design, right: Design) -> Bool { | 
return left.axis == right.axis && left.elementKind == right.elementKind  | 
}  | 
Copyright © 2016 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2016-09-13