WIP: ScrollContentBackground needs a lot more work than I'd expected

This commit is contained in:
Shaps Benkau 2023-01-26 02:19:21 +00:00
parent 7214afca8c
commit d55b9e3556
3 changed files with 26 additions and 1 deletions

View File

@ -6,6 +6,7 @@ public typealias PlatformImage = UIImage
public typealias PlatformScreen = UIScreen
internal typealias PlatformView = UIView
internal typealias PlatformScrollView = UIScrollView
internal typealias PlatformViewController = UIViewController
extension UIScreen {
@ -33,6 +34,7 @@ public typealias PlatformImage = NSImage
public typealias PlatformScreen = NSScreen
internal typealias PlatformView = NSView
internal typealias PlatformScrollView = NSScrollView
internal typealias PlatformViewController = NSViewController
extension NSScreen {

View File

@ -0,0 +1,17 @@
import SwiftUI
/*
WIP
*/
@available(iOS, deprecated: 16)
private extension Backport where Wrapped: View {
func scrollContentBackground(_ visibility: Backport<Any>.Visibility) -> some View {
content.inspect { inspector in
inspector.sibling(ofType: PlatformScrollView.self)
} customize: { view in
let isHidden = visibility == .hidden
print(isHidden)
}
}
}

View File

@ -35,7 +35,7 @@ extension Backport where Wrapped: View {
/// - axes: The axes of scrollable views that the visibility applies to.
///
/// - Returns: A view with the specified scroll indicator visibility.
public func scrollIndicators(_ visibility: Backport<Any>.ScrollIndicatorVisibility, axes: Axis.Set = [.vertical, .horizontal]) -> some View {
public func scrollIndicators(_ visibility: Backport<Any>.ScrollIndicatorVisibility, axes: Axis.Set = [.vertical]) -> some View {
#if os(iOS)
content
.environment(\.backportHorizontalScrollIndicatorVisibility, axes.contains(.horizontal) ? visibility : .automatic)
@ -50,10 +50,16 @@ extension Backport where Wrapped: View {
#if os(iOS)
if axes.contains(.horizontal) {
scrollView.showsHorizontalScrollIndicator = visibility.scrollViewVisible
scrollView.alwaysBounceHorizontal = true
} else {
scrollView.alwaysBounceHorizontal = false
}
if axes.contains(.vertical) {
scrollView.showsVerticalScrollIndicator = visibility.scrollViewVisible
scrollView.alwaysBounceVertical = true
} else {
scrollView.alwaysBounceVertical = false
}
#endif
}