pub struct ScrollProxy { /* private fields */ }Expand description
The ScrollViewProxy a scroll_view_reader’s closure is handed.
An owned copy, not a borrow, because that is how SwiftUI means it to be used:
ScrollViewReader { proxy in
Button("go") { proxy.scrollTo(10) } // captured, used later
}Calling scroll_to during the build instead traps —
ScrollViewProxy may not be accessed during view updates, which is SwiftUI’s
own check and was measured by doing it. So the proxy has to outlive the
closure, and a borrow would not let it.
ScrollViewProxy is resilient, so it reaches the closure by address and its
size is not something a caller may assume: the bytes are copied through its
own value witness rather than read as a word. It happens to be eight POD
bytes today, which is exactly the kind of fact a resilient type is allowed to
change.
Implementations§
Source§impl ScrollProxy
impl ScrollProxy
Sourcepub fn scroll_to(&self, id: i64)
pub fn scroll_to(&self, id: i64)
proxy.scrollTo(id) — bring the view with that .id(_:) into view.
Int ids only, which is what ForEach(0..<n) and .id(i) produce. A
String id would need its own Hashable witness passed, and nothing in
this crate produces one yet.
Sourcepub fn scroll_to_anchor(&self, id: i64, anchor: (f64, f64))
pub fn scroll_to_anchor(&self, id: i64, anchor: (f64, f64))
proxy.scrollTo(id, anchor: UnitPoint(x:y:)).