Beginning work on device cells

This commit is contained in:
Charles Magahern
2015-12-31 15:41:32 -08:00
parent 5b535f5720
commit df0f72af23
7 changed files with 368 additions and 26 deletions
@@ -1,16 +0,0 @@
//
// ArcadeMachinesViewController.swift
// XIONControlPanel
//
// Created by Charles Magahern on 12/30/15.
// Copyright © 2015 XION. All rights reserved.
//
import UIKit
class ArcadeMachinesViewController: UIViewController {
override func viewDidLoad()
{
super.viewDidLoad()
}
}
@@ -10,7 +10,7 @@ import UIKit
class MainViewController: UIViewController {
private var _visualizationController: VisualizationViewController = VisualizationViewController()
private var _machinesController: ArcadeMachinesViewController = ArcadeMachinesViewController()
private var _switchesController: SwitchesViewController = SwitchesViewController()
private var _headerView: HeaderView = HeaderView()
// MARK: Overrides
@@ -24,8 +24,8 @@ class MainViewController: UIViewController {
self.addChildViewController(_visualizationController)
self.view.addSubview(_visualizationController.view)
self.addChildViewController(_machinesController)
self.view.addSubview(_machinesController.view)
self.addChildViewController(_switchesController)
self.view.addSubview(_switchesController.view)
self.view.addSubview(_headerView)
}
@@ -53,18 +53,18 @@ class MainViewController: UIViewController {
let visualizationFrame = CGRect(
x: bodyBounds.origin.x,
y: bodyBounds.origin.y,
width: rint((5.0 / 8.0) * bodyBounds.size.width),
width: rint(0.6 * bodyBounds.size.width),
height: bodyBounds.size.height
)
_visualizationController.view.frame = visualizationFrame
let machinesControllerFrame = CGRect(
let switchesControllerFrame = CGRect(
x: CGRectGetMaxX(visualizationFrame),
y: bodyBounds.origin.y,
width: bodyBounds.size.width - visualizationFrame.size.width,
height: bodyBounds.size.height
)
_machinesController.view.frame = machinesControllerFrame
_switchesController.view.frame = switchesControllerFrame
}
override func viewDidAppear(animated: Bool)
@@ -0,0 +1,74 @@
//
// SwitchesViewController.swift
// XIONControlPanel
//
// Created by Charles Magahern on 12/30/15.
// Copyright © 2015 XION. All rights reserved.
//
import Darwin
import Foundation
import UIKit
class SwitchesViewController: UIViewController,
UICollectionViewDataSource,
UICollectionViewDelegateFlowLayout
{
private var _collectionView: UICollectionView = UICollectionView(frame: CGRectZero,
collectionViewLayout: UICollectionViewFlowLayout())
static private let collectionViewCellReuseIdentifier = "SwitchesCollectionViewReuseID"
static private let collectionViewCellsSpacing: CGFloat = 5.0
static private let collectionViewCellsPerRow = 3
override func viewDidLoad()
{
super.viewDidLoad()
let reuseID = SwitchesViewController.collectionViewCellReuseIdentifier
let layout = _collectionView.collectionViewLayout as! UICollectionViewFlowLayout
layout.scrollDirection = .Vertical
layout.minimumLineSpacing = SwitchesViewController.collectionViewCellsSpacing
layout.minimumInteritemSpacing = SwitchesViewController.collectionViewCellsSpacing
_collectionView.backgroundColor = UIColor.blackColor()
_collectionView.delegate = self
_collectionView.dataSource = self
_collectionView.registerClass(WemoDeviceCellView.self, forCellWithReuseIdentifier: reuseID)
self.view.addSubview(_collectionView)
}
override func viewDidLayoutSubviews()
{
super.viewDidLayoutSubviews()
let bounds = self.view.bounds
_collectionView.frame = bounds
}
// MARK: UICollectionView
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
return 10
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
{
let reuseID = SwitchesViewController.collectionViewCellReuseIdentifier
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseID, forIndexPath: indexPath) as! WemoDeviceCellView
cell.ordinal = indexPath.row + 1
return cell
}
func collectionView(collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
{
let spacing = SwitchesViewController.collectionViewCellsSpacing
let cellsPerRow = CGFloat(SwitchesViewController.collectionViewCellsPerRow)
let dimensions = rint(collectionView.bounds.size.width / cellsPerRow) - spacing
return CGSize(width: dimensions, height: dimensions)
}
}