Commit 3744a4a9 by Daniel Dahan

updated MaterialSwitch example

parent a1629384
...@@ -11,8 +11,6 @@ ...@@ -11,8 +11,6 @@
96A71ED71C6FFF7300C0C4AE /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96A71ED61C6FFF7300C0C4AE /* ViewController.swift */; }; 96A71ED71C6FFF7300C0C4AE /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96A71ED61C6FFF7300C0C4AE /* ViewController.swift */; };
96A71EDC1C6FFF7300C0C4AE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 96A71EDB1C6FFF7300C0C4AE /* Assets.xcassets */; }; 96A71EDC1C6FFF7300C0C4AE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 96A71EDB1C6FFF7300C0C4AE /* Assets.xcassets */; };
96A71EDF1C6FFF7300C0C4AE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 96A71EDD1C6FFF7300C0C4AE /* LaunchScreen.storyboard */; }; 96A71EDF1C6FFF7300C0C4AE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 96A71EDD1C6FFF7300C0C4AE /* LaunchScreen.storyboard */; };
96A71EE71C70007600C0C4AE /* Material.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96A71EE61C70007600C0C4AE /* Material.framework */; };
96A71EE81C70007600C0C4AE /* Material.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 96A71EE61C70007600C0C4AE /* Material.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */ /* Begin PBXCopyFilesBuildPhase section */
...@@ -22,7 +20,6 @@ ...@@ -22,7 +20,6 @@
dstPath = ""; dstPath = "";
dstSubfolderSpec = 10; dstSubfolderSpec = 10;
files = ( files = (
96A71EE81C70007600C0C4AE /* Material.framework in Embed Frameworks */,
); );
name = "Embed Frameworks"; name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
...@@ -36,7 +33,6 @@ ...@@ -36,7 +33,6 @@
96A71EDB1C6FFF7300C0C4AE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 96A71EDB1C6FFF7300C0C4AE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
96A71EDE1C6FFF7300C0C4AE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 96A71EDE1C6FFF7300C0C4AE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
96A71EE01C6FFF7300C0C4AE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 96A71EE01C6FFF7300C0C4AE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
96A71EE61C70007600C0C4AE /* Material.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; name = Material.framework; path = "/Users/danieldahan/Library/Developer/Xcode/DerivedData/Material-hbpnflxhoouqxebjcyhbbhqyesjd/Build/Products/Debug-iphoneos/Material.framework"; sourceTree = "<absolute>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
...@@ -44,7 +40,6 @@ ...@@ -44,7 +40,6 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
96A71EE71C70007600C0C4AE /* Material.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
...@@ -54,7 +49,6 @@ ...@@ -54,7 +49,6 @@
96A71EC81C6FFF7300C0C4AE = { 96A71EC81C6FFF7300C0C4AE = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
96A71EE61C70007600C0C4AE /* Material.framework */,
96A71ED31C6FFF7300C0C4AE /* MaterialSwitch */, 96A71ED31C6FFF7300C0C4AE /* MaterialSwitch */,
96A71ED21C6FFF7300C0C4AE /* Products */, 96A71ED21C6FFF7300C0C4AE /* Products */,
); );
......
{
"images" : [
{
"idiom" : "universal",
"filename" : "ic_alarm_white_18pt.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_alarm_white_18pt_2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_alarm_white_18pt_3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
...@@ -42,7 +42,5 @@ ...@@ -42,7 +42,5 @@
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict> </dict>
</plist> </plist>
...@@ -36,94 +36,81 @@ import UIKit ...@@ -36,94 +36,81 @@ import UIKit
import Material import Material
class ViewController: UIViewController, MaterialSwitchDelegate { class ViewController: UIViewController, MaterialSwitchDelegate {
private var topView: MaterialView = MaterialView()
private var bottomView: MaterialView = MaterialView()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
prepareView() prepareView()
prepareSmallMaterialSwitch() prepareLightContentMaterialSwitch()
prepareDefaultMaterialSwitch() prepareDefaultMaterialSwitch()
prepareLargeMaterialSwitch()
prepareLightOnDisabledMaterialSwitch()
prepareLightOffDisabledMaterialSwitch()
prepareDarkOnDisabledMaterialSwitch()
prepareDarkOffDisabledMaterialSwitch()
} }
/// General preparation statements. /// General preparation statements.
private func prepareView() { private func prepareView() {
view.backgroundColor = MaterialColor.white view.backgroundColor = MaterialColor.white
view.addSubview(topView)
topView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bottomView)
bottomView.translatesAutoresizingMaskIntoConstraints = false
bottomView.backgroundColor = MaterialColor.grey.darken4
MaterialLayout.alignToParentHorizontally(view, child: topView)
MaterialLayout.alignToParentHorizontally(view, child: bottomView)
MaterialLayout.alignToParentVertically(view, children: [topView, bottomView])
} }
/// Prepares the Small MaterialSwitch. /// Prepares the LightContent MaterialSwitch.
private func prepareSmallMaterialSwitch() { private func prepareLightContentMaterialSwitch() {
let switchControl: MaterialSwitch = MaterialSwitch(state: .Off, style: .Light, size: .Small) let c1: MaterialSwitch = MaterialSwitch(state: .Off, style: .LightContent, size: .Small)
switchControl.center = view.center c1.delegate = self
switchControl.y -= 100 c1.translatesAutoresizingMaskIntoConstraints = false
switchControl.delegate = self topView.addSubview(c1)
view.addSubview(switchControl)
let c2: MaterialSwitch = MaterialSwitch(state: .On, style: .LightContent)
c2.delegate = self
c2.translatesAutoresizingMaskIntoConstraints = false
topView.addSubview(c2)
let c3: MaterialSwitch = MaterialSwitch(state: .Off, style: .LightContent, size: .Large)
c3.delegate = self
c3.enabled = false
c3.translatesAutoresizingMaskIntoConstraints = false
topView.addSubview(c3)
MaterialLayout.alignToParentHorizontally(topView, child: c1)
MaterialLayout.alignToParentHorizontally(topView, child: c2)
MaterialLayout.alignToParentHorizontally(topView, child: c3)
MaterialLayout.alignToParentVertically(topView, children: [c1, c2, c3])
} }
/// Prepares the Default MaterialSwitch. /// Prepares the LightContent MaterialSwitch.
private func prepareDefaultMaterialSwitch() { private func prepareDefaultMaterialSwitch() {
let switchControl: MaterialSwitch = MaterialSwitch(state: .On, style: .Light) let c1: MaterialSwitch = MaterialSwitch(state: .Off, style: .Default, size: .Small)
switchControl.delegate = self c1.delegate = self
c1.translatesAutoresizingMaskIntoConstraints = false
bottomView.addSubview(c1)
view.addSubview(switchControl) let c2: MaterialSwitch = MaterialSwitch(state: .On)
switchControl.translatesAutoresizingMaskIntoConstraints = false c2.delegate = self
MaterialLayout.alignFromBottomRight(view, child: switchControl, bottom: 16, right: 16) c2.translatesAutoresizingMaskIntoConstraints = false
} bottomView.addSubview(c2)
/// Prepares the Large MaterialSwitch. let c3: MaterialSwitch = MaterialSwitch(state: .Off, style: .Default, size: .Large)
private func prepareLargeMaterialSwitch() { c3.delegate = self
let image: UIImage? = UIImage(named: "ic_alarm_white_18pt") c3.enabled = false
let switchControl: MaterialSwitch = MaterialSwitch(state: .Off, style: .Light, size: .Large) c3.translatesAutoresizingMaskIntoConstraints = false
switchControl.center = view.center bottomView.addSubview(c3)
switchControl.y -= 50
switchControl.delegate = self MaterialLayout.alignToParentHorizontally(bottomView, child: c1)
switchControl.button.setImage(image, forState: .Normal) MaterialLayout.alignToParentHorizontally(bottomView, child: c2)
switchControl.button.setImage(image, forState: .Highlighted) MaterialLayout.alignToParentHorizontally(bottomView, child: c3)
view.addSubview(switchControl) MaterialLayout.alignToParentVertically(bottomView, children: [c1, c2, c3])
}
/// Prepares the Light On enabled = false MaterialSwitch.
private func prepareLightOnDisabledMaterialSwitch() {
let switchControl: MaterialSwitch = MaterialSwitch(state: .On, style: .Light)
switchControl.enabled = false
switchControl.center = view.center
switchControl.delegate = self
view.addSubview(switchControl)
}
/// Prepares the Light Off enabled = false MaterialSwitch.
private func prepareLightOffDisabledMaterialSwitch() {
let switchControl: MaterialSwitch = MaterialSwitch(state: .Off, style: .Light)
switchControl.enabled = false
switchControl.center = view.center
switchControl.y += 50
switchControl.delegate = self
view.addSubview(switchControl)
}
/// Prepares the Dark On enabled = false MaterialSwitch.
private func prepareDarkOnDisabledMaterialSwitch() {
let switchControl: MaterialSwitch = MaterialSwitch(state: .On, style: .Dark)
switchControl.enabled = false
switchControl.center = view.center
switchControl.y += 100
switchControl.delegate = self
view.addSubview(switchControl)
}
/// Prepares the Dark On enabled = false MaterialSwitch.
private func prepareDarkOffDisabledMaterialSwitch() {
let switchControl: MaterialSwitch = MaterialSwitch(state: .Off, style: .Dark)
switchControl.enabled = false
switchControl.center = view.center
switchControl.y += 150
switchControl.delegate = self
view.addSubview(switchControl)
} }
internal func switchControlStateChanged(control: MaterialSwitch, state: MaterialSwitchState) { internal func materialSwitchStateChanged(control: MaterialSwitch, state: MaterialSwitchState) {
print("MaterialSwitch - Size: \(control.switchSize) State: \(state)") print("MaterialSwitch - Size: \(control.switchSize) State: \(state)")
} }
} }
...@@ -31,8 +31,8 @@ ...@@ -31,8 +31,8 @@
import UIKit import UIKit
public enum MaterialSwitchStyle { public enum MaterialSwitchStyle {
case Light case LightContent
case Dark case Default
} }
public enum MaterialSwitchState { public enum MaterialSwitchState {
...@@ -169,27 +169,27 @@ public class MaterialSwitch: UIControl { ...@@ -169,27 +169,27 @@ public class MaterialSwitch: UIControl {
public private(set) var switchState: MaterialSwitchState = .Off public private(set) var switchState: MaterialSwitchState = .Off
/// MaterialSwitch style. /// MaterialSwitch style.
public var switchStyle: MaterialSwitchStyle = .Light { public var switchStyle: MaterialSwitchStyle = .LightContent {
didSet { didSet {
switch switchStyle { switch switchStyle {
case .Light: case .LightContent:
buttonOnColor = MaterialColor.blue.lighten1 buttonOnColor = MaterialColor.lightBlue.darken3
trackOnColor = MaterialColor.blue.darken2 trackOnColor = MaterialColor.lightBlue.lighten3
buttonOffColor = MaterialColor.grey.lighten2 buttonOffColor = MaterialColor.blueGrey.lighten4
trackOffColor = MaterialColor.grey.darken1 trackOffColor = MaterialColor.blueGrey.lighten3
buttonOnDisabledColor = MaterialColor.blue.base buttonOnDisabledColor = MaterialColor.grey.lighten2
trackOnDisabledColor = MaterialColor.blue.darken3 trackOnDisabledColor = MaterialColor.grey.lighten3
buttonOffDisabledColor = MaterialColor.grey.base buttonOffDisabledColor = MaterialColor.grey.lighten2
trackOffDisabledColor = MaterialColor.grey.darken3 trackOffDisabledColor = MaterialColor.grey.lighten3
case .Dark: case .Default:
buttonOnColor = MaterialColor.blueGrey.base buttonOnColor = MaterialColor.lightBlue.lighten1
trackOnColor = MaterialColor.blueGrey.darken3 trackOnColor = MaterialColor.lightBlue.lighten2.colorWithAlphaComponent(0.5)
buttonOffColor = MaterialColor.grey.base buttonOffColor = MaterialColor.blueGrey.lighten3
trackOffColor = MaterialColor.grey.darken3 trackOffColor = MaterialColor.blueGrey.lighten4.colorWithAlphaComponent(0.5)
buttonOnDisabledColor = MaterialColor.blueGrey.darken1 buttonOnDisabledColor = MaterialColor.grey.darken3
trackOnDisabledColor = MaterialColor.blueGrey.darken4 trackOnDisabledColor = MaterialColor.grey.lighten1.colorWithAlphaComponent(0.2)
buttonOffDisabledColor = MaterialColor.grey.darken1 buttonOffDisabledColor = MaterialColor.grey.darken3
trackOffDisabledColor = MaterialColor.grey.darken4 trackOffDisabledColor = MaterialColor.grey.lighten1.colorWithAlphaComponent(0.2)
} }
} }
} }
...@@ -237,7 +237,7 @@ public class MaterialSwitch: UIControl { ...@@ -237,7 +237,7 @@ public class MaterialSwitch: UIControl {
prepareTrack() prepareTrack()
prepareButton() prepareButton()
prepareSwitchSize(.Default) prepareSwitchSize(.Default)
prepareSwitchStyle(.Light) prepareSwitchStyle(.LightContent)
prepareSwitchState(.Off) prepareSwitchState(.Off)
} }
...@@ -247,7 +247,7 @@ public class MaterialSwitch: UIControl { ...@@ -247,7 +247,7 @@ public class MaterialSwitch: UIControl {
- Parameter style: A MaterialSwitchStyle value. - Parameter style: A MaterialSwitchStyle value.
- Parameter size: A MaterialSwitchSize value. - Parameter size: A MaterialSwitchSize value.
*/ */
public init(state: MaterialSwitchState = .On, style: MaterialSwitchStyle = .Light, size: MaterialSwitchSize = .Default) { public init(state: MaterialSwitchState = .On, style: MaterialSwitchStyle = .Default, size: MaterialSwitchSize = .Default) {
track = MaterialView(frame: CGRectZero) track = MaterialView(frame: CGRectZero)
button = FabButton(frame: CGRectZero) button = FabButton(frame: CGRectZero)
super.init(frame: CGRectZero) super.init(frame: CGRectZero)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment