Skip to content

Instantly share code, notes, and snippets.

View scotteg's full-sized avatar
🏠
Working from home

Scott Gardner scotteg

🏠
Working from home
View GitHub Profile
@scotteg
scotteg / SwiftArrayOfUIViewsSortInPlaceByTagExtension.swift
Last active April 11, 2020 05:18
Sorts an array of UIViews or subclasses by tag.
extension Array where Element: UIView {
/**
Sorts an array of `UIView`s or subclasses by `tag`. For example, this is useful when working with `IBOutletCollection`s, whose order of elements can be changed when manipulating the views in Interface Builder. Just tag your views in Interface Builder and then call this method on your `IBOutletCollection`s in `viewDidLoad()`.
- author: Scott Gardner
- seealso:
* [Source on GitHub](http://bit.ly/SortUIViewsInPlaceByTag)
*/
mutating func sortUIViewsInPlaceByTag() {
sortInPlace { (left: Element, right: Element) in
@scotteg
scotteg / SwiftQueryItemsDictionaryNSURLExtension.swift
Last active November 30, 2015 13:10
Swift NSURL extension that returns a Dictionary of String keys and String values for each key/value pair in an NSURL query string.
import Foundation
/**
Returns a `Dictionary` of `String` keys and `String` values for each key/value pair in an `NSURL` query string.
- author: Scott Gardner
- seealso:
* [Source on GitHub](http://bit.ly/SwiftQueryItemsDictionaryNSURLExtension)
*/
extension NSURL {
@scotteg
scotteg / SwiftCGPointsOnCircle.swift
Last active January 22, 2020 12:57
Returns an array of `CGPoint`s that are evenly distributed around the circumference of a circle for a given radius, center x, center y, and number of decimal points precision.
import UIKit
/**
Returns an array of `CGPoint`s that are evenly distributed around the circumference of a circle for a number of points, center x, center y, and radius of the circle, and maximum number of decimal points precision for the x and y values.
- author: Scott Gardner
- parameter numberOfPoints: the number of points to plot; 1 or more
- parameter centerX: the center `x` of the circle
- parameter centerY: the center `y` of the circle
- parameter radius: the radius of the circle (distance from center)
- parameter precision: the maximum number of decimal places precision, 0 or higher, **defaults to 3**
// From Swift 2 Essential Training http://www.lynda.com/Swift-tutorials/Using-labels/422096/447960-4.html
var i = 0
let hello = "Hello, playground!"
start: do {
i++
do {
print(hello)
@scotteg
scotteg / HandlesKeyboard.swift
Last active March 1, 2019 16:33
Drop-in keyboard handler
//
// HandlesKeyboard.swift
//
// Created by Scott Gardner on 1/14/19.
// Copyright © 2019 Scott Gardner. All rights reserved.
//
import UIKit
protocol HandlesKeyboard where Self: UIViewController {
@scotteg
scotteg / UIStoryboard+InstantiateViaNameAndType.swift
Last active March 20, 2019 20:47
Extension on UIStoryboard to simplify programmatic instantiation
import UIKit
extension UIStoryboard {
enum Name: String {
case main = "Main"
case otherStuff = "OtherStuff"
}