I hereby claim:
- I am harshilshah on github.
- I am harshil (https://keybase.io/harshil) on keybase.
- I have a public key ASDakFowAvIvGAamvulxzoszb7CcuYH4O0wpITZzq6Ojlwo
To claim this, I am signing this object:
// | |
// UIFont+SmallCaps.swift | |
// | |
// Created by Harshil Shah on 27/04/16. | |
// Copyright © 2016 Harshil Shah. All rights reserved. | |
// | |
import UIKit | |
extension UIFont { |
class CollectionViewCellAnimation: UICollectionViewCell { | |
override var isHighlighted: Bool { | |
didSet { | |
if isHighlighted { | |
handleTouchDown() | |
} else { | |
handleTouchUp() | |
} | |
} |
// | |
// UIColor+Components.swift | |
// | |
// Created by Harshil Shah on 12/08/17. | |
// Copyright © 2017 Harshil Shah. All rights reserved. | |
// | |
import UIKit | |
extension UIColor { |
// | |
// CIEdgePreserveUpsampleFilter.swift | |
// | |
// Created by Harshil Shah on 18/08/17. | |
// Copyright © 2017 Harshil Shah. All rights reserved. | |
// | |
import CoreImage | |
extension CIImage { |
import UIKit | |
extension UIColor { | |
convenience init(displayP3Hue hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat = 1) { | |
// Bound colours to range of [0–1] | |
let newHue = max(0, min(1, hue)) | |
let newSaturation = max(0, min(1, saturation)) | |
let newBrightness = max(0, min(1, brightness)) |
// | |
// GrabberView.swift | |
// | |
// Created by Harshil Shah on 23/07/17. | |
// Copyright © 2017 Harshil Shah. All rights reserved. | |
// | |
import UIKit | |
final class GrabberView: UIView { |
// | |
// UIView+SafeAnchors.swift | |
// | |
extension UIView { | |
var safeTopAnchor: NSLayoutYAxisAnchor { return optionalSafeAreaLayoutGuide?.topAnchor ?? topAnchor } | |
var safeBottomAnchor: NSLayoutYAxisAnchor { return optionalSafeAreaLayoutGuide?.bottomAnchor ?? bottomAnchor } | |
var safeLeftAnchor: NSLayoutXAxisAnchor { return optionalSafeAreaLayoutGuide?.leftAnchor ?? leftAnchor } |
import UIKit | |
final class HSViewPropertyAnimator: UIViewPropertyAnimator { | |
private var preparations: [(UIViewAnimatingPosition) -> ()] = [] | |
override func startAnimation() { | |
runPreparations() | |
super.startAnimation() | |
} |
I hereby claim:
To claim this, I am signing this object:
protocol ImageLoader { | |
var image: UIImage? { get } | |
func fetchImage(forSize size: CGSize) | |
func cancelFetch() | |
} | |
struct AsyncImage<Loader: ObservableObject & ImageLoader>: View { | |
@ObservedObject var loader: Loader |