Skip to content
This repository was archived by the owner on Apr 2, 2025. It is now read-only.

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DisplayLink

A simplified DisplayLink abstraction for all platforms (including iOS, tvOS, watchOS, macOS, Linux).

publicfinalclassDisplayLink:Publisher{publictypealiasOutput=FramepublictypealiasFailure=Never}extensionDisplayLink{publicstructFrame{publicvartimestamp:TimeIntervalpublicvarduration:TimeInterval}}
PlatformImplementation
iOS, tvOSCADisplayLink
macOSCVDisplayLink
watchOS, LinuxTimer

Includes a Combine publisher with SwiftUI integration for CADisplayLink.

SwiftUI does not currently provide any API to perform actions on a per-frame basis. This tiny library simplifies the work of bridging between CADisplayLink and SwiftUI:

import DisplayLink
structMyView:View{@Statevaroffset:CGFloat=0.0varbody:someView{Color.red
.frame(width:40, height:40).offset(x: offset, y: offset).onFrame{ frame inself.offset +=(frame.duration *20.0)}}}

About

Per-frame actions for SwiftUI

Resources

Stars

121 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages