Commit bfa2cd30 by danieldahan

removed MenuView for lighter-weighted MenuLayout approach

parent 1c8824e5
...@@ -36,19 +36,19 @@ import UIKit ...@@ -36,19 +36,19 @@ import UIKit
import Material import Material
class ViewController: UIViewController { class ViewController: UIViewController {
private var menuView: MenuView! private var menuView: MenuLayout!
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
prepareView() prepareView()
prepareMenuViewExample() prepareMenuLayoutExample()
} }
internal func handleOpenMenuView() { internal func handleOpenMenuLayout() {
if menuView.opened { if menuView.opened {
menuView.close() menuView.close()
} else { } else {
menuView.open() { (item: MenuViewItem) in menuView.open() { (item: MenuLayoutItem) in
(item.button as? MaterialButton)?.pulse() (item.button as? MaterialButton)?.pulse()
} }
} }
...@@ -59,45 +59,54 @@ class ViewController: UIViewController { ...@@ -59,45 +59,54 @@ class ViewController: UIViewController {
view.backgroundColor = MaterialColor.white view.backgroundColor = MaterialColor.white
} }
/// Prepares the MenuView example. /// Prepares the MenuLayout example.
private func prepareMenuViewExample() { private func prepareMenuLayoutExample() {
let btn: FlatButton = FlatButton(frame: CGRectMake(100, 100, 100, 100))
btn.backgroundColor = MaterialColor.red.base
let image: UIImage? = UIImage(named: "ic_add_white") let image: UIImage? = UIImage(named: "ic_add_white")
let btn1: FabButton = FabButton() let btn1: FabButton = FabButton()
btn1.depth = .None btn1.depth = .None
btn1.setImage(image, forState: .Normal) btn1.setImage(image, forState: .Normal)
btn1.setImage(image, forState: .Highlighted) btn1.setImage(image, forState: .Highlighted)
btn1.addTarget(self, action: "handleOpenMenuView", forControlEvents: .TouchUpInside) btn1.addTarget(self, action: "handleOpenMenuLayout", forControlEvents: .TouchUpInside)
view.addSubview(btn1)
let btn2: FabButton = FabButton() let btn2: FabButton = FabButton()
btn2.depth = .None btn2.depth = .None
btn2.backgroundColor = MaterialColor.blue.base btn2.backgroundColor = MaterialColor.blue.base
btn2.setImage(image, forState: .Normal) btn2.setImage(image, forState: .Normal)
btn2.setImage(image, forState: .Highlighted) btn2.setImage(image, forState: .Highlighted)
view.addSubview(btn2)
let btn3: FabButton = FabButton() let btn3: FabButton = FabButton()
btn3.depth = .None btn3.depth = .None
btn3.backgroundColor = MaterialColor.green.base btn3.backgroundColor = MaterialColor.green.base
btn3.setImage(image, forState: .Normal) btn3.setImage(image, forState: .Normal)
btn3.setImage(image, forState: .Highlighted) btn3.setImage(image, forState: .Highlighted)
view.addSubview(btn3)
let btn4: FabButton = FabButton() let btn4: FabButton = FabButton()
btn4.depth = .None btn4.depth = .None
btn4.backgroundColor = MaterialColor.yellow.base btn4.backgroundColor = MaterialColor.yellow.base
btn4.setImage(image, forState: .Normal) btn4.setImage(image, forState: .Normal)
btn4.setImage(image, forState: .Highlighted) btn4.setImage(image, forState: .Highlighted)
view.addSubview(btn4)
menuView = MenuView(frame: view.bounds) menuView = MenuLayout()
// menuView.menuPosition = .BottomLeft menuView.menuPosition = .TopRight
// menuView.menuDirection = .Up menuView.menuDirection = .Left
menuView.baseSize = CGSizeMake(36, 36) menuView.baseSize = CGSizeMake(36, 36)
menuView.itemSize = CGSizeMake(36, 36) menuView.itemSize = CGSizeMake(36, 36)
view.addSubview(menuView)
view.addSubview(btn)
menuView.menuItems = [ menuView.menuItems = [
MenuViewItem(button: btn1), MenuLayoutItem(button: btn1),
MenuViewItem(button: btn2), MenuLayoutItem(button: btn2),
MenuViewItem(button: btn3), MenuLayoutItem(button: btn3),
MenuViewItem(button: btn4) MenuLayoutItem(button: btn4)
] ]
} }
} }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
65FDC2EB1C66858A00103AC2 /* MenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65FDC2EA1C66858A00103AC2 /* MenuView.swift */; }; 65FDC2EB1C66858A00103AC2 /* MenuLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65FDC2EA1C66858A00103AC2 /* MenuLayout.swift */; };
960B23271C383E5500E96216 /* Material+String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 960B23261C383E5500E96216 /* Material+String.swift */; }; 960B23271C383E5500E96216 /* Material+String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 960B23261C383E5500E96216 /* Material+String.swift */; };
960B232E1C383EAA00E96216 /* Material+UIImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 960B23281C383EAA00E96216 /* Material+UIImage.swift */; }; 960B232E1C383EAA00E96216 /* Material+UIImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 960B23281C383EAA00E96216 /* Material+UIImage.swift */; };
960B232F1C383EAA00E96216 /* Material+UIImage+Crop.swift in Sources */ = {isa = PBXBuildFile; fileRef = 960B23291C383EAA00E96216 /* Material+UIImage+Crop.swift */; }; 960B232F1C383EAA00E96216 /* Material+UIImage+Crop.swift in Sources */ = {isa = PBXBuildFile; fileRef = 960B23291C383EAA00E96216 /* Material+UIImage+Crop.swift */; };
...@@ -115,7 +115,7 @@ ...@@ -115,7 +115,7 @@
/* End PBXContainerItemProxy section */ /* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
65FDC2EA1C66858A00103AC2 /* MenuView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MenuView.swift; sourceTree = "<group>"; }; 65FDC2EA1C66858A00103AC2 /* MenuLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MenuLayout.swift; sourceTree = "<group>"; };
960B23261C383E5500E96216 /* Material+String.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Material+String.swift"; sourceTree = "<group>"; }; 960B23261C383E5500E96216 /* Material+String.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Material+String.swift"; sourceTree = "<group>"; };
960B23281C383EAA00E96216 /* Material+UIImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Material+UIImage.swift"; sourceTree = "<group>"; }; 960B23281C383EAA00E96216 /* Material+UIImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Material+UIImage.swift"; sourceTree = "<group>"; };
960B23291C383EAA00E96216 /* Material+UIImage+Crop.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Material+UIImage+Crop.swift"; sourceTree = "<group>"; }; 960B23291C383EAA00E96216 /* Material+UIImage+Crop.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Material+UIImage+Crop.swift"; sourceTree = "<group>"; };
...@@ -393,7 +393,7 @@ ...@@ -393,7 +393,7 @@
children = ( children = (
96D88C151C1328D800B91418 /* NavigationBarView.swift */, 96D88C151C1328D800B91418 /* NavigationBarView.swift */,
96D88C1D1C1328D800B91418 /* SideNavigationViewController.swift */, 96D88C1D1C1328D800B91418 /* SideNavigationViewController.swift */,
65FDC2EA1C66858A00103AC2 /* MenuView.swift */, 65FDC2EA1C66858A00103AC2 /* MenuLayout.swift */,
); );
name = Navigation; name = Navigation;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -585,7 +585,7 @@ ...@@ -585,7 +585,7 @@
96D88C3E1C1328D800B91418 /* NavigationBarView.swift in Sources */, 96D88C3E1C1328D800B91418 /* NavigationBarView.swift in Sources */,
96D88C221C1328D800B91418 /* FabButton.swift in Sources */, 96D88C221C1328D800B91418 /* FabButton.swift in Sources */,
96D88C3F1C1328D800B91418 /* RaisedButton.swift in Sources */, 96D88C3F1C1328D800B91418 /* RaisedButton.swift in Sources */,
65FDC2EB1C66858A00103AC2 /* MenuView.swift in Sources */, 65FDC2EB1C66858A00103AC2 /* MenuLayout.swift in Sources */,
960B23311C383EAA00E96216 /* Material+UIImage+PhotoLibrary.swift in Sources */, 960B23311C383EAA00E96216 /* Material+UIImage+PhotoLibrary.swift in Sources */,
960B23321C383EAA00E96216 /* Material+UIImage+Resize.swift in Sources */, 960B23321C383EAA00E96216 /* Material+UIImage+Resize.swift in Sources */,
96D88C3C1C1328D800B91418 /* MaterialTransitionAnimation.swift in Sources */, 96D88C3C1C1328D800B91418 /* MaterialTransitionAnimation.swift in Sources */,
......
...@@ -30,21 +30,21 @@ ...@@ -30,21 +30,21 @@
import UIKit import UIKit
public enum MenuViewDirection { public enum MenuLayoutDirection {
case Up case Up
case Down case Down
case Left case Left
case Right case Right
} }
public enum MenuViewPosition { public enum MenuLayoutPosition {
case TopLeft case TopLeft
case TopRight case TopRight
case BottomLeft case BottomLeft
case BottomRight case BottomRight
} }
public struct MenuViewItem { public struct MenuLayoutItem {
/// UIButton. /// UIButton.
public var button: UIButton public var button: UIButton
...@@ -57,22 +57,25 @@ public struct MenuViewItem { ...@@ -57,22 +57,25 @@ public struct MenuViewItem {
} }
} }
public class MenuView : MaterialView { public class MenuLayout {
public var width: CGFloat = UIScreen.mainScreen().bounds.width
public var height: CGFloat = UIScreen.mainScreen().bounds.height
/// A Boolean that indicates if the menu is open or not. /// A Boolean that indicates if the menu is open or not.
public private(set) var opened: Bool = false public private(set) var opened: Bool = false
/// The position of the menu. /// The position of the menu.
public var menuPosition: MenuViewPosition = .BottomRight { public var menuPosition: MenuLayoutPosition = .BottomRight {
didSet { didSet {
reloadView() reloadView()
} }
} }
/// The direction in which the animation opens the menu. /// The direction in which the animation opens the menu.
public var menuDirection: MenuViewDirection = .Up public var menuDirection: MenuLayoutDirection = .Up
/// An Array of MenuViewItems. /// An Array of MenuLayoutItems.
public var menuItems: Array<MenuViewItem>? { public var menuItems: Array<MenuLayoutItem>? {
didSet { didSet {
reloadView() reloadView()
} }
...@@ -82,12 +85,11 @@ public class MenuView : MaterialView { ...@@ -82,12 +85,11 @@ public class MenuView : MaterialView {
public var baseSize: CGSize = CGSizeMake(56, 56) public var baseSize: CGSize = CGSizeMake(56, 56)
public func reloadView() { public init() {
// Clear the subviews.
for v in subviews {
v.removeFromSuperview()
}
}
public func reloadView() {
switch menuPosition { switch menuPosition {
case .TopLeft: case .TopLeft:
layoutTopLeft() layoutTopLeft()
...@@ -100,7 +102,7 @@ public class MenuView : MaterialView { ...@@ -100,7 +102,7 @@ public class MenuView : MaterialView {
} }
} }
public func open(completion: ((MenuViewItem) -> Void)? = nil) { public func open(completion: ((MenuLayoutItem) -> Void)? = nil) {
switch menuDirection { switch menuDirection {
case .Up: case .Up:
openUpAnimation(completion) openUpAnimation(completion)
...@@ -113,7 +115,7 @@ public class MenuView : MaterialView { ...@@ -113,7 +115,7 @@ public class MenuView : MaterialView {
} }
} }
public func close(completion: ((MenuViewItem) -> Void)? = nil) { public func close(completion: ((MenuLayoutItem) -> Void)? = nil) {
switch menuDirection { switch menuDirection {
case .Up: case .Up:
closeUpAnimation(completion) closeUpAnimation(completion)
...@@ -126,14 +128,14 @@ public class MenuView : MaterialView { ...@@ -126,14 +128,14 @@ public class MenuView : MaterialView {
} }
} }
private func openUpAnimation(completion: ((MenuViewItem) -> Void)? = nil) { private func openUpAnimation(completion: ((MenuLayoutItem) -> Void)? = nil) {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
var base: MenuViewItem? var base: MenuLayoutItem?
for var i: Int = 1, l: Int = v.count; i < l; ++i { for var i: Int = 1, l: Int = v.count; i < l; ++i {
if nil == base { if nil == base {
base = v[0] base = v[0]
} }
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
item.button.hidden = false item.button.hidden = false
UIView.animateWithDuration(Double(i) * 0.15, UIView.animateWithDuration(Double(i) * 0.15,
animations: { [unowned self] in animations: { [unowned self] in
...@@ -148,10 +150,10 @@ public class MenuView : MaterialView { ...@@ -148,10 +150,10 @@ public class MenuView : MaterialView {
} }
} }
public func closeUpAnimation(completion: ((MenuViewItem) -> Void)? = nil) { public func closeUpAnimation(completion: ((MenuLayoutItem) -> Void)? = nil) {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
for var i: Int = 1, l: Int = v.count; i < l; ++i { for var i: Int = 1, l: Int = v.count; i < l; ++i {
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
UIView.animateWithDuration(0.15, UIView.animateWithDuration(0.15,
animations: { [unowned self] in animations: { [unowned self] in
item.button.alpha = 0 item.button.alpha = 0
...@@ -166,14 +168,14 @@ public class MenuView : MaterialView { ...@@ -166,14 +168,14 @@ public class MenuView : MaterialView {
} }
} }
private func openDownAnimation(completion: ((MenuViewItem) -> Void)? = nil) { private func openDownAnimation(completion: ((MenuLayoutItem) -> Void)? = nil) {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
var base: MenuViewItem? var base: MenuLayoutItem?
for var i: Int = 1, l: Int = v.count; i < l; ++i { for var i: Int = 1, l: Int = v.count; i < l; ++i {
if nil == base { if nil == base {
base = v[0] base = v[0]
} }
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
item.button.hidden = false item.button.hidden = false
UIView.animateWithDuration(Double(i) * 0.15, UIView.animateWithDuration(Double(i) * 0.15,
animations: { [unowned self] in animations: { [unowned self] in
...@@ -188,10 +190,10 @@ public class MenuView : MaterialView { ...@@ -188,10 +190,10 @@ public class MenuView : MaterialView {
} }
} }
public func closeDownAnimation(completion: ((MenuViewItem) -> Void)? = nil) { public func closeDownAnimation(completion: ((MenuLayoutItem) -> Void)? = nil) {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
for var i: Int = 1, l: Int = v.count; i < l; ++i { for var i: Int = 1, l: Int = v.count; i < l; ++i {
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
UIView.animateWithDuration(0.15, UIView.animateWithDuration(0.15,
animations: { animations: {
item.button.alpha = 0 item.button.alpha = 0
...@@ -206,14 +208,14 @@ public class MenuView : MaterialView { ...@@ -206,14 +208,14 @@ public class MenuView : MaterialView {
} }
} }
private func openLeftAnimation(completion: ((MenuViewItem) -> Void)? = nil) { private func openLeftAnimation(completion: ((MenuLayoutItem) -> Void)? = nil) {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
var base: MenuViewItem? var base: MenuLayoutItem?
for var i: Int = 1, l: Int = v.count; i < l; ++i { for var i: Int = 1, l: Int = v.count; i < l; ++i {
if nil == base { if nil == base {
base = v[0] base = v[0]
} }
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
item.button.hidden = false item.button.hidden = false
UIView.animateWithDuration(Double(i) * 0.15, UIView.animateWithDuration(Double(i) * 0.15,
animations: { [unowned self] in animations: { [unowned self] in
...@@ -228,10 +230,10 @@ public class MenuView : MaterialView { ...@@ -228,10 +230,10 @@ public class MenuView : MaterialView {
} }
} }
public func closeLeftAnimation(completion: ((MenuViewItem) -> Void)? = nil) { public func closeLeftAnimation(completion: ((MenuLayoutItem) -> Void)? = nil) {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
for var i: Int = 1, l: Int = v.count; i < l; ++i { for var i: Int = 1, l: Int = v.count; i < l; ++i {
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
UIView.animateWithDuration(0.15, UIView.animateWithDuration(0.15,
animations: { [unowned self] in animations: { [unowned self] in
item.button.alpha = 0 item.button.alpha = 0
...@@ -246,14 +248,14 @@ public class MenuView : MaterialView { ...@@ -246,14 +248,14 @@ public class MenuView : MaterialView {
} }
} }
private func openRightAnimation(completion: ((MenuViewItem) -> Void)? = nil) { private func openRightAnimation(completion: ((MenuLayoutItem) -> Void)? = nil) {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
var base: MenuViewItem? var base: MenuLayoutItem?
for var i: Int = 1, l: Int = v.count; i < l; ++i { for var i: Int = 1, l: Int = v.count; i < l; ++i {
if nil == base { if nil == base {
base = v[0] base = v[0]
} }
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
item.button.hidden = false item.button.hidden = false
UIView.animateWithDuration(Double(i) * 0.15, UIView.animateWithDuration(Double(i) * 0.15,
animations: { [unowned self] in animations: { [unowned self] in
...@@ -268,10 +270,10 @@ public class MenuView : MaterialView { ...@@ -268,10 +270,10 @@ public class MenuView : MaterialView {
} }
} }
public func closeRightAnimation(completion: ((MenuViewItem) -> Void)? = nil) { public func closeRightAnimation(completion: ((MenuLayoutItem) -> Void)? = nil) {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
for var i: Int = 1, l: Int = v.count; i < l; ++i { for var i: Int = 1, l: Int = v.count; i < l; ++i {
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
UIView.animateWithDuration(0.15, UIView.animateWithDuration(0.15,
animations: { animations: {
item.button.alpha = 0 item.button.alpha = 0
...@@ -287,80 +289,80 @@ public class MenuView : MaterialView { ...@@ -287,80 +289,80 @@ public class MenuView : MaterialView {
} }
private func layoutTopLeft() { private func layoutTopLeft() {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
for var i: Int = 0, l: Int = v.count; i < l; ++i { for var i: Int = 0, l: Int = v.count; i < l; ++i {
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
if 0 == i { if 0 == i {
item.button.frame.size = baseSize item.button.frame.size = baseSize
item.button.frame.origin.x = 16 item.button.frame.origin.x = 16
item.button.frame.origin.y = 16 item.button.frame.origin.y = 16
addSubview(item.button) item.button.layer.zPosition = 10000
} else { } else {
item.button.alpha = 0 item.button.alpha = 0
item.button.frame.size = itemSize item.button.frame.size = itemSize
item.button.frame.origin.x = (baseSize.width - itemSize.width) / 2 + 16 item.button.frame.origin.x = (baseSize.width - itemSize.width) / 2 + 16
item.button.frame.origin.y = (baseSize.height - itemSize.height) / 2 + 16 item.button.frame.origin.y = (baseSize.height - itemSize.height) / 2 + 16
insertSubview(item.button, belowSubview: v[i - 1].button) item.button.layer.zPosition = CGFloat(10000 - i)
} }
} }
} }
} }
private func layoutTopRight() { private func layoutTopRight() {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
for var i: Int = 0, l: Int = v.count; i < l; ++i { for var i: Int = 0, l: Int = v.count; i < l; ++i {
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
if 0 == i { if 0 == i {
item.button.frame.size = baseSize item.button.frame.size = baseSize
item.button.frame.origin.x = width - baseSize.width - 16 item.button.frame.origin.x = width - baseSize.width - 16
item.button.frame.origin.y = 16 item.button.frame.origin.y = 16
addSubview(item.button) item.button.layer.zPosition = 10000
} else { } else {
item.button.alpha = 0 item.button.alpha = 0
item.button.frame.size = itemSize item.button.frame.size = itemSize
item.button.frame.origin.x = width - (baseSize.width + itemSize.width) / 2 - 16 item.button.frame.origin.x = width - (baseSize.width + itemSize.width) / 2 - 16
item.button.frame.origin.y = (baseSize.height - itemSize.height) / 2 + 16 item.button.frame.origin.y = (baseSize.height - itemSize.height) / 2 + 16
insertSubview(item.button, belowSubview: v[i - 1].button) item.button.layer.zPosition = CGFloat(10000 - i)
} }
} }
} }
} }
private func layoutBottomLeft() { private func layoutBottomLeft() {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
for var i: Int = 0, l: Int = v.count; i < l; ++i { for var i: Int = 0, l: Int = v.count; i < l; ++i {
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
if 0 == i { if 0 == i {
item.button.frame.size = baseSize item.button.frame.size = baseSize
item.button.frame.origin.x = 16 item.button.frame.origin.x = 16
item.button.frame.origin.y = height - baseSize.height - 16 item.button.frame.origin.y = height - baseSize.height - 16
addSubview(item.button) item.button.layer.zPosition = 10000
} else { } else {
item.button.alpha = 0 item.button.alpha = 0
item.button.frame.size = itemSize item.button.frame.size = itemSize
item.button.frame.origin.x = (baseSize.width - itemSize.width) / 2 + 16 item.button.frame.origin.x = (baseSize.width - itemSize.width) / 2 + 16
item.button.frame.origin.y = height - (baseSize.height + itemSize.height) / 2 - 16 item.button.frame.origin.y = height - (baseSize.height + itemSize.height) / 2 - 16
insertSubview(item.button, belowSubview: v[i - 1].button) item.button.layer.zPosition = CGFloat(10000 - i)
} }
} }
} }
} }
private func layoutBottomRight() { private func layoutBottomRight() {
if let v: Array<MenuViewItem> = menuItems { if let v: Array<MenuLayoutItem> = menuItems {
for var i: Int = 0, l: Int = v.count; i < l; ++i { for var i: Int = 0, l: Int = v.count; i < l; ++i {
let item: MenuViewItem = v[i] let item: MenuLayoutItem = v[i]
if 0 == i { if 0 == i {
item.button.frame.size = baseSize item.button.frame.size = baseSize
item.button.frame.origin.x = width - baseSize.width - 16 item.button.frame.origin.x = width - baseSize.width - 16
item.button.frame.origin.y = height - baseSize.height - 16 item.button.frame.origin.y = height - baseSize.height - 16
addSubview(item.button) item.button.layer.zPosition = 10000
} else { } else {
item.button.alpha = 0 item.button.alpha = 0
item.button.frame.size = itemSize item.button.frame.size = itemSize
item.button.frame.origin.x = width - (baseSize.width + itemSize.width) / 2 - 16 item.button.frame.origin.x = width - (baseSize.width + itemSize.width) / 2 - 16
item.button.frame.origin.y = height - (baseSize.height + itemSize.height) / 2 - 16 item.button.frame.origin.y = height - (baseSize.height + itemSize.height) / 2 - 16
insertSubview(item.button, belowSubview: v[i - 1].button) item.button.layer.zPosition = CGFloat(10000 - i)
} }
} }
} }
......
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