Screen · Weather
Forecast SwiftUI Screen
A giant tabular reading you scrub hour by hour on a ruled tape, over a ten-day range table.
A forecast screen set like a printed almanac: a giant tabular temperature, a tape of hairline ticks for the next 24 hours you drag to scrub, with rolling figures, conditions and a sun or moon that travels its arc, and a ten-day table of capsule range bars below.
- SwiftUI
- iOS 17.0+
- forecast-scrubber
$199 once, every piece included. See how installing works · Sign in
01
What's included
SwiftUI source you own, built on Apple frameworks only.
- A ruled hour tape with a detent and haptic per hour
- Rolling tabular figures and a sun or moon that travels its arc
- A ten-day table with capsule range bars on one shared scale
- Adjustable for VoiceOver, hour by hour
- The Forecast screen from the preview, ready to adapt
In the Build Kit
Press (style), Prism (style). Your agent builds around this screen in the same design.
Used in
Weather App (template)
02
Implementation notes
How it behaves, what it handles, and the decisions behind it.
The page is set like a printed almanac. A masthead with an issue rule sits over the hour under the indicator, shown as a giant tabular figure with a ruled sidebar for feels like, high, low and rain. Below it the next 24 hours run on a tape of hairline ticks under one fixed spot-colour indicator, like the rim of a measuring dial. Drag it and the tape follows your finger, snapping to each hour with a selection tick while the figures roll and the sun (or, after sunset, a crescent moon) travels a ruled half-dial between the rise and set times. Hours likely to rain ink their ticks, so the showers read off the ruler before you scrub to them.
Under the instrument, a ten-day table draws each day's low to high as a capsule on one shared scale, with a ring on today's bar for the hour you have scrubbed to, and the day's details close the page as ruled cells: a wind compass, UV as a solid block, humidity on a dot grid, sunrise and sunset.
Notes
ForecastScrubberis a control, not a readout. It owns the drag, the fling and the snapping; your screen readsselectionand puts the figures wherever it likes. Bindpositionas well when something should follow the drag continuously, such asForecastSkyArc.- The tape and the arc are drawn in
Canvasand are animatable in their position, so a fling or a jump back to now glides instead of cutting. - VoiceOver reads the tape as one adjustable element ("15:00, 24 degrees, Sunny"); swipe up or down to move an hour. Each table row is one element with its conditions, rain chance, low and high.
ForecastRangeBar.span(low:high:in:)is the scaling the bars use, exposed so a widget or a test can place a range the same way.- Dynamic Type at accessibility sizes stacks the sidebar under the figure and moves each range bar under its day. Reduce Motion swaps the springs for short ease-outs.
- Loading draws the ruled page with quiet bars where the figures will land; a failed load keeps the masthead and offers a retry.
ForecastScrubberExampleat the end ofForecastScrubber.swiftis the screen shown in the preview; copy it as a starting point.
03
Keep building
Pieces that work well next to this one.