Skip to content

Instantly share code, notes, and snippets.

View IntegerOverlord's full-sized avatar

IntegerOverlord

View GitHub Profile
struct ContentView: View {
let data = (1...10000).map { "Item \($0)" }
let columns = [
GridItem(.flexible()),
GridItem(.flexible()),
GridItem(.flexible())
]
var body: some View {
import SwiftUI
struct SizePreferenceKey: PreferenceKey {
static var defaultValue: CGSize = .zero
static func reduce(value: inout CGSize, nextValue: () -> CGSize) {}
}
public extension View {
func readSize(onChange: @escaping (CGSize) -> Void) -> some View {
self
@IntegerOverlord
IntegerOverlord / TestView.swift
Created December 12, 2022 20:17
ScrollView approach
struct Test: View {
private let coordinateSpaceName = "StickyHeaderCoordinateSpaceName"
@State var counter: Int = 0
@State var forEachId: UUID = UUID()
var body: some View {
ScrollView {
LazyVStack {
GeometryReader { proxy in
Color.red
extension View {
/// Useful for applying modifiers that are limited to certain iOS versions
func modify<Content>(@ViewBuilder _ transform: (Self) -> Content) -> Content {
transform(self)
}
}
@IntegerOverlord
IntegerOverlord / ScrollOffsetTestView.swift
Created December 8, 2022 10:37
Currently used approach to get List offset
struct ScrollOffsetPreferenceKey: PreferenceKey {
static var defaultValue: CGPoint = .zero
static func reduce(value: inout CGPoint, nextValue: () -> CGPoint) {}
}
struct ScrollOffsetTestView: View {
var body: some View {
GeometryReader { proxy in
List {
SwiftUI.Section(
@IntegerOverlord
IntegerOverlord / gist:e1b959c0132f527a9efcce108f16edf3
Last active October 31, 2022 13:39
UIButton masksToBounds issue
class TestButton: UIButton {
init() {
super.init(frame: CGRect.zero)
self.layer.masksToBounds = true
self.layer.borderColor = UIColor.black.cgColor
self.layer.borderWidth = 1 / UIScreen.main.scale
self.layer.cornerCurve = .continuous