Skip to content

Instantly share code, notes, and snippets.

View chrislconover's full-sized avatar

Chris Conover chrislconover

View GitHub Profile
@chrislconover
chrislconover / SingleSelectionCell+RxSwift.swift
Last active February 2, 2018 04:14
Single selection logic for a cell, using RxSwift
class ParentViewModelClass {
func singleSelectionCell(_ title: String) -> FormCellBuildable {
return FormCheckmarkCellModel(
title: title, selected: false,
didSelect: { model in
// create single use subscription
let _ = self.selectedValue.asObservable().withPrevious(startWith: nil).take(1)
.filter { $0.1 != nil }.map { ($0.0, $0.1!) }
.subscribe(onNext: { from, to in
import RxSwift
var disposeBag: DisposeBag! = DisposeBag()
var variable: Variable<[Int]>!
= Variable<[Int]>([1, 2, 3])
var variableObserver: Observable! = variable.asObservable()
var subject: PublishSubject<[Int]>! = PublishSubject<[Int]>()
var observable: Observable<[Int]>!
func foo() {
@chrislconover
chrislconover / RxSwift+Differ.playground
Last active February 2, 2018 01:28
Diffing RxSwift observables
let v = Variable<[Int]>([1, 2, 3])
let withDiffs = v.asObservable().withDiffs(startingWith: [])
.subscribe(onNext: { print("With diffs: \($0)") })
let justDiffs = v.asObservable().diffs(startingWith: [])
.subscribe(onNext: { print("Just diffs: \($0)") })
v.value = [1, 3, 4]
prints:
// Adapted from original Apple Obj-C sample code
import UIKit
import CoreText
import QuartzCore
@IBDesignable
class ClippingLabel : UILabel {
@chrislconover
chrislconover / hamburger.swift
Created January 23, 2018 18:15 — forked from MrAlek/hamburger.swift
Example of how to use presentation, animation & interaction controllers w/ custom segues to create a slide-in modal menu which partially covers presenting view.
// https://gist.github.com/MrAlek/3d1520ca2c5d981489e2
import UIKit
enum Direction {
case left, right, up, down
var pointVector: CGPoint {
switch self {
case .left: return CGPoint(x: -1, y: 0)