Skip to content

Instantly share code, notes, and snippets.

@skagedal
skagedal / UIViewController+Deselection.swift
Last active June 9, 2016 12:26 — forked from ZevEisenberg/LICENSE
Smoothly deselect table and collection view cells on dismissal, including interactive dismiss and interactively-partially-dismiss-then-cancel-then-dismiss-again
extension UIViewController {
func rz_smoothlyDeselectRows(tableView tableView: UITableView?) {
let selectedIndexPaths = tableView?.indexPathsForSelectedRows ?? []
if let coordinator = transitionCoordinator() {
coordinator.animateAlongsideTransitionInView(parentViewController?.view, animation: { context in
selectedIndexPaths.forEach {
tableView?.deselectRowAtIndexPath($0, animated: context.isAnimated())
}
// Example code for https://openradar.appspot.com/radar?id=4975264899530752 since I can't attach
// a zip there and am to lazy to create a git repo for the whole thing.
// Create a standard iOS "Single View" application with Core Data in Xcode 7.3.1
// Create one Core Data entity called Thing with an integer "order" and a string "name"
// Hook up a simple view controller to these actions
#import "AppDelegate.h"
#import "ViewController.h"
#import "Thing.h"
// Demo for SO question:
//
// http://stackoverflow.com/questions/42659251/can-a-table-view-row-stay-put-while-its-section-is-moving
import UIKit
enum State: Int {
case first
case second
}
//: Playground - noun: a place where people can play
import Cocoa
enum ImageError: Error {
case couldNotCreateBitmapImage
case couldNotCreatePNGRepresentation
}
func renderIcon(text: String, backgroundColor: NSColor, sizeInPixels: Int) throws -> Data {
@skagedal
skagedal / DataSplitSequence.swift
Created December 2, 2018 18:40
Implemented for AoC 2018, first question
import Foundation
/// Represents a sequence of Data split at a certain value
struct DataSplitSequence: Sequence {
typealias Element = Data
struct Iterator: IteratorProtocol {
private let sequence: DataSplitSequence
private var index: Int = -1
// Demonstrating a bug with what the table view reports as the destination index path when dragging within
// the same section
import UIKit
class TableViewController: UITableViewController, UITableViewDragDelegate, UITableViewDropDelegate {
var data: [(String, [String])] = [("One", ["A", "B", "C"]), ("Two", ["1", "2", "3"])]
override func viewDidLoad() {
super.viewDidLoad()
@skagedal
skagedal / simulator.zsh
Last active February 15, 2021 14:42
Extension for zsh that gives an auto-completable cd to a simulator data container of the app with the given bundle identifier.
# Extension for zsh that cd to a simulator data container of the app with the given bundle identifier.
#
# See blog post at https://skagedal.github.io/2018/01/02/simcd.html
function simdir () {
xcrun simctl get_app_container booted $1 data
}
function simcd () {
cd `simdir $1`
@skagedal
skagedal / WorkaroundWebViewController.swift
Created September 6, 2018 08:19
A simplified WKWebView view controller with workarounds for setting cookies.
import UIKit
import WebKit
class WorkaroundWebViewController: UIViewController, WKNavigationDelegate {
let request: URLRequest
private let websiteDataStore = WKWebsiteDataStore.default()
private var webView: WKWebView!
private var initialDummyNavigation: WKNavigation?