-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix LottieView bugs #2289
Fix LottieView bugs #2289
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Somebody called the exterminator! 🐞 🐛
applyCurrentAnimationConfiguration(to: context.view) | ||
} | ||
.configurations(configurations) | ||
.overlay { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a behavior change that will probably affect existing consumers (see comparison below) but I think this is ok because the updated behavior seems more expected and predictable
LottieView {
try await loadAnimation()
} placeholder: {
LoadingIndicator()
.frame(width: 50, height: 50)
}
Before | After |
---|---|
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [airbnb/lottie-spm](https://togithub.com/airbnb/lottie-spm) | minor | `from: "4.3.4"` -> `from: "4.4.0"` | --- ### Release Notes <details> <summary>airbnb/lottie-spm (airbnb/lottie-spm)</summary> ### [`v4.4.0`](https://togithub.com/airbnb/lottie-spm/releases/tag/4.4.0) [Compare Source](https://togithub.com/airbnb/lottie-spm/compare/4.3.4...4.4.0) #### New features - Add privacy manifest ([https://github.com/airbnb/lottie-ios/pull/2252](https://togithub.com/airbnb/lottie-ios/pull/2252)) - Codesign Lottie.xcframework ([https://github.com/airbnb/lottie-ios/pull/2259](https://togithub.com/airbnb/lottie-ios/pull/2259)) - Add time remapping support to Core Animation rendering engine ([https://github.com/airbnb/lottie-ios/pull/2286](https://togithub.com/airbnb/lottie-ios/pull/2286)) - Add official visionOS support to lottie-ios repo ([https://github.com/airbnb/lottie-ios/pull/2287](https://togithub.com/airbnb/lottie-ios/pull/2287)) - lottie-spm now supports visionOS ([https://github.com/airbnb/lottie-spm/pull/12](https://togithub.com/airbnb/lottie-spm/pull/12)) - Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 ([https://github.com/airbnb/lottie-ios/pull/2260](https://togithub.com/airbnb/lottie-ios/pull/2260)) #### Bug fixes - Update LottieView to display placeholder using `overlay` instead of `ZStack` ([https://github.com/airbnb/lottie-ios/pull/2289](https://togithub.com/airbnb/lottie-ios/pull/2289)) - Fix issue where Core Animation rendering engine couldn't display last frame of animation when paused ([https://github.com/airbnb/lottie-ios/pull/2254](https://togithub.com/airbnb/lottie-ios/pull/2254)) - Do not create `DotLottieImageProvider` instance if there's no image files ([https://github.com/airbnb/lottie-ios/pull/2271](https://togithub.com/airbnb/lottie-ios/pull/2271)) - Mark DotLottieCache as Sendable ([https://github.com/airbnb/lottie-ios/pull/2245](https://togithub.com/airbnb/lottie-ios/pull/2245)) - Fix issue where AnimationKeypath in SolidLayer could be incorrect ([https://github.com/airbnb/lottie-ios/pull/2278](https://togithub.com/airbnb/lottie-ios/pull/2278)) - Fix issue where Repeater could be displayed incorrectly ([https://github.com/airbnb/lottie-ios/pull/2276](https://togithub.com/airbnb/lottie-ios/pull/2276)) - Include dSYMs in xcframework build ([https://github.com/airbnb/lottie-ios/pull/2284](https://togithub.com/airbnb/lottie-ios/pull/2284)) - Fix parsing issue, add support for DotLottieConfiguration in SwiftUI LottieView ([https://github.com/airbnb/lottie-ios/pull/2277](https://togithub.com/airbnb/lottie-ios/pull/2277)) - Fix issue where DotLottieImageProvider didn't handle base64 images ([https://github.com/airbnb/lottie-ios/pull/2283](https://togithub.com/airbnb/lottie-ios/pull/2283)) - Fix issue where manually interpolated keyframes could animate incorrectly ([https://github.com/airbnb/lottie-ios/pull/2285](https://togithub.com/airbnb/lottie-ios/pull/2285)) **Full Changelog**: airbnb/lottie-ios@4.3.4...4.4.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDAuMCIsInVwZGF0ZWRJblZlciI6IjM2LjEwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: Self-hosted Renovate Bot <361546+cgrindel-self-hosted-renovate[bot]@users.noreply.github.enterprise.com>
This PR fixes #2257
This issue was caused by the animation view inside the
if
statement. By the time it was loaded and inserted in the view hierarchy it didn't include the animation transaction therefore it was not animated.This PR also fixes #2267
This was caused by not having no relation between the animation view and it's placeholder. Now we use a overlay for the placeholder which provides the same size from the animation view to the placeholder
Finally, I added a new Demo screen where we can add simple tests for compatibility with other SwiftUI APIs
lottie-view-fixes.mp4