I hereby claim:
- I am rolandleth on github.
- I am rolandleth (https://keybase.io/rolandleth) on keybase.
- I have a public key whose fingerprint is BD89 9BE0 51C3 7C47 1B21 4C2C B2A2 A248 0058 1718
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
import UIKit | |
import PlaygroundSupport | |
final class FullInteractiveLabel: UILabel { | |
private let dataDetector: NSDataDetector? | |
private var detectedResults: [NSTextCheckingResult] { | |
guard let text = attributedText?.string ?? self.text else { return [] } | |
return dataDetector?.matches(in: text, range: NSRange(location: 0, length: text.count)) ?? [] |
// Blog post: https://rolandleth.com/extracting-and-parsing-tweets-from-your-twitter-archive | |
import Foundation | |
struct Tweet: Codable { | |
let text: String | |
let timestamp: String | |
} |
import UIKit | |
import PlaygroundSupport | |
let touchAnimationDuration: TimeInterval = 0.3 | |
var shouldPulse = true | |
class Handler { | |
@objc | |
func didTouchUpInside(_ button: UIButton) { |
// Avoids the keyboard in a UIKit app by leveraging additionalSafeAreaInsets. | |
// You can put this in the root view controller so the whole app will avoid the keyboard. | |
// Only tested on iOS 13.3. | |
// Made for https://douglashill.co/reading-app/ | |
@objc func updateSafeAreaForKeyboardFromNotification(_ notification: Notification) { | |
guard let endFrameInScreenCoords = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect else { | |
return | |
} | |
// Please consider whether the force unwrap here is safe for your own use case. |
import UIKit | |
class VStack: UIStackView { | |
init(alignment: UIStackView.Alignment = .fill, spacing: CGFloat = 10, _ arrangedViews: UIView...) { | |
super.init(frame: .zero) | |
axis = .vertical | |
self.alignment = alignment | |
self.spacing = spacing |
defaultBoldFontName | |
defaultDimmedTextColor | |
defaultEmphasizedFontName | |
defaultFontName | |
defaultSelectedTextShadowColor@1x | |
defaultSelectedTextShadowColor@2x | |
defaultShadowOffset | |
defaultTextColor | |
defaultTextShadowColor | |
defaultTextShadowColor@2x |