This is a curated list of reference material that anyone who develops in the Apple domain will hopefully find helpful. Most items are things I have used and can vouch for.
--
--
| import Foundation | |
| import PlaygroundSupport | |
| import SwiftUI | |
| import UIKit | |
| protocol Scheme { | |
| var url: URL { get } | |
| } | |
| enum ActionScheme: Scheme { |
| import Foundation | |
| import SwiftUI | |
| struct ScrollViewTracking: Equatable { | |
| /// A stable identifier to name the view's coordinate space | |
| let namespace: AnyHashable = UUID() | |
| /// The current position of the scroll view | |
| var position: CGPoint = .zero | |
| /// The scroll view's content size | |
| var contentSize: CGSize = .zero |
| import SwiftUI | |
| struct IndentScrollView: View { | |
| let min = 0.5 | |
| let max = 3.5 | |
| let increment = 0.1 | |
| @State | |
| var multiplier = 0.5 |
| // | |
| // BottomSheetView.swift | |
| // field | |
| // | |
| // Created by Corey Walo on 12/21/22. | |
| // | |
| import SwiftUI | |
| fileprivate enum Constants { |
| protocol FooProtocol {} | |
| protocol BarProtocol {} | |
| protocol DootProtocol {} | |
| typealias CompProtocol = FooProtocol & BarProtocol & DootProtocol | |
| struct Dependencies: CompProtocol {} | |
| struct SomeType { |
| func heightOfString(_ string: String, attributes: [NSAttributedString.Key: Any], fitting width: CGFloat) -> CGFloat { | |
| let constraintRect = CGSize(width: width, height: CGFloat.greatestFiniteMagnitude) | |
| let boundingRect = string.boundingRect(with: constraintRect, | |
| options: [.usesLineFragmentOrigin, .usesFontLeading], | |
| attributes: attributes, | |
| context: nil) | |
| return boundingRect.size.height | |
| } |
This is a curated list of reference material that anyone who develops in the Apple domain will hopefully find helpful. Most items are things I have used and can vouch for.
--
--
| private var shadowLayer: CAShapeLayer! | |
| private var cornerRadius: CGFloat = 25.0 | |
| private var fillColor: UIColor = .blue // the color applied to the shadowLayer, rather than the view's backgroundColor | |
| override func layoutSubviews() { | |
| super.layoutSubviews() | |
| if shadowLayer == nil { | |
| shadowLayer = CAShapeLayer() | |
| /* | |
| Example of how to create a view that has rounded corners and a shadow. | |
| These cannot be on the same layer because setting the corner radius requires masksToBounds = true. | |
| When it's true, the shadow is clipped. | |
| It's possible to add sublayers and set their path with a UIBezierPath(roundedRect...), but this becomes difficult when using AutoLayout. | |
| Instead, we a containerView for the cornerRadius and the current view for the shadow. | |
| All subviews should just be added and constrained to the containerView | |
| */ | |
| import UIKit |
| import Foundation | |
| extension String { | |
| var containsEmoji: Bool { | |
| for scalar in unicodeScalars { | |
| switch scalar.value { | |
| case 0x1F600...0x1F64F, // Emoticons | |
| 0x1F300...0x1F5FF, // Misc Symbols and Pictographs | |
| 0x1F680...0x1F6FF, // Transport and Map | |
| 0x1F900...0x1F9FF, //idk but here lies clown and others |