Skip to content

Instantly share code, notes, and snippets.

View tixster's full-sized avatar
😀

Kirill Tila tixster

😀
View GitHub Profile
@tixster
tixster / UsesAutoLayout.swift
Created December 29, 2023 15:02
UsesAutoLayout
@propertyWrapper
public struct UsesAutoLayout<T: UIView> {
public var wrappedValue: T {
didSet {
_setTranslatesAutoresizingMaskIntoConstraints()
}
}
public init(wrappedValue: T) {
self.wrappedValue = wrappedValue
@tixster
tixster / Publisher+Ex.swift
Created December 29, 2023 14:45
Weak Publisher
extension Publisher where Failure == Never {
func weakAssign<T: AnyObject>(
to keyPath: ReferenceWritableKeyPath<T, Output>,
on object: T
) -> AnyCancellable {
sink { [weak object] value in
object?[keyPath: keyPath] = value
}
}
import UIKit
class AdaptedConstraint: NSLayoutConstraint {
// MARK: - Properties
var initialConstant: CGFloat?
override func awakeFromNib() {
super.awakeFromNib()
saveConstant()
import SwiftUI
public struct RoundedCorner: Shape {
public var radius: CGFloat = .infinity
public var corners: UIRectCorner = .allCorners
public func path(in rect: CGRect) -> Path {
let path = UIBezierPath(roundedRect: rect, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
return Path(path.cgPath)
import SwiftUI
public class UIBackdropView: UIView {
override class public var layerClass: AnyClass {
return NSClassFromString("CABackdropLayer") ?? CALayer.self
}
}
public struct Backdrop: UIViewRepresentable {
extension View {
func innerShadow<S: Shape, SS: ShapeStyle>(
shape: S,
color: SS,
lineWidth: CGFloat = 1,
offsetX: CGFloat = 0,
offsetY: CGFloat = 0,
blur: CGFloat = 4,
blendMode: BlendMode = .normal,
opacity: Double = 1
@tixster
tixster / iOS URL Schemes
Created June 20, 2022 07:21 — forked from bartleby/iOS URL Schemes
iOS URL Schemes
URL Schemes
Apple
 
Apple Music     — music://geo.itunes.apple.com/us/albums/<albumID>
                – music://geo.itunes.apple.com/us/artists/<artistID>
 
Apple News      — applenews://
App Store       — itms-apps://itunes.apple.com/app/<appID>
Apple TV        — videos://
@tixster
tixster / urlschemes.json
Created June 20, 2022 07:11
iOS app URL schemes for Icon Themer shortcut
{
"com.8bit.bitwarden": " ",
"com.agilebits.onepassword-ios": "onepassword://",
"com.apple.airport.mobileairportutility": "apmanage://",
"com.apple.appleseed.FeedbackAssistant": "applefeedback://",
"com.apple.AppStore": "itms-apps://itunes.apple.com/",
"com.apple.AppStoreConnect": "shortcuts://run-shortcut?name=Icon%20Themer&input=%7B%22launch%22%3A%22Connect%22%7D",
"com.apple.artistconnect": "shortcuts://run-shortcut?name=Icon%20Themer&input=%7B%22launch%22%3A%22Artists%22%7D",
"com.apple.bnd": "beatsbond://",
"com.apple.Bridge": "com.apple.bridge://x",
@tixster
tixster / SizeCustomizer.swift
Last active July 27, 2022 08:06
Size Customizer
//
// CGFloat.swift
//
//
// Created by kirill.tila on 14.06.2022.
//
// Рашсирение для удобной установки размеров
import UIKit // SwiftUI
import UIKit
enum GradientMode {
case horizontal
case vertical
case diagonal
case dopDiagonal
}
protocol GradientButtonProtocol {