From ed9af4855893e285c905c5b891ef2a112dfc1420 Mon Sep 17 00:00:00 2001 From: nixzhu Date: Thu, 14 May 2015 20:02:44 +0800 Subject: [PATCH] add pickMarginIn to UIDevice for a better use case --- Yep/Configs/YepConfig.swift | 11 +---------- Yep/Extensions/UIDevice+Yep.swift | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/Yep/Configs/YepConfig.swift b/Yep/Configs/YepConfig.swift index d0c0ff88..a922f71e 100644 --- a/Yep/Configs/YepConfig.swift +++ b/Yep/Configs/YepConfig.swift @@ -99,16 +99,7 @@ class YepConfig { struct SocialWorkGithub { struct Repo { - static let leftEdgeInset: CGFloat = { - switch UIDevice.screenWidthModel { - case .Classic: - return 20 - case .Bigger: - return 40 - case .BiggerPlus: - return 40 - } - }() + static let leftEdgeInset = UIDevice.pickMarginIn([20, 40, 40]) static let rightEdgeInset = leftEdgeInset } } diff --git a/Yep/Extensions/UIDevice+Yep.swift b/Yep/Extensions/UIDevice+Yep.swift index 1d9282bc..86521aeb 100644 --- a/Yep/Extensions/UIDevice+Yep.swift +++ b/Yep/Extensions/UIDevice+Yep.swift @@ -10,10 +10,16 @@ import UIKit extension UIDevice { - enum ScreenWidthModel { - case Classic + enum ScreenWidthModel: Int { + case Classic = 0 case Bigger case BiggerPlus + + static var caseCount: Int { + var max: Int = 0 + while let _ = self(rawValue: ++max) {} + return max + } } static let screenWidthModel: ScreenWidthModel = { @@ -33,4 +39,19 @@ extension UIDevice { return .Bigger // Default }() + + class func pickMarginIn(margins: [CGFloat]) -> CGFloat { + + if margins.count < ScreenWidthModel.caseCount { + println("Warning: NOT enough margins") + + if margins.count > 0 { + return margins[0] + } else { + return 0 + } + } + + return margins[screenWidthModel.rawValue] + } }