This repository has been archived by the owner on May 1, 2024. It is now read-only.
[iOS] Fix Frame issues #10469
Merged
[iOS] Fix Frame issues #10469
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jfversluis
added
t/bug 🐛
DO-NOT-MERGE-!!! 🛑
This is in progress and needs to be updated before it can be merged.
p/iOS 🍎
i/regression
m/high impact ⬛
ControlGallery
a/frame
4.5.0
regression on 4.5.0
labels
Apr 27, 2020
Added DNM for now. I want to verify that all the linked issues are resolved by the NuGets generated from this. |
jfversluis
commented
Apr 27, 2020
protected override void Build (StackLayout stackLayout) | ||
{ | ||
base.Build (stackLayout); | ||
|
||
var hasShadowContainer = new StateViewContainer<Frame> (Test.Frame.HasShadow, new Frame { HasShadow = true }); | ||
var outlineColorContainer = new StateViewContainer<Frame> (Test.Frame.OutlineColor, new Frame { BorderColor = Color.Teal, }); |
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.
API is obsolete, so removed this test case
samhouts
added
the
API-change
Heads-up to reviewers that this PR may contain an API change
label
Apr 27, 2020
jfversluis
removed
the
API-change
Heads-up to reviewers that this PR may contain an API change
label
Apr 30, 2020
Implemented a slightly better solution which allows to keep the same base class for this renderer and only adds a separate frame that will hold the actual content. Taking off the API change label. Still want to take these NuGets and go through the "fixed issues" list to see if this works in all of these scenarios. |
samhouts
moved this from Ready for Review (PRs)
to Continued in next sprint
in Sprint 170
May 26, 2020
rmarinho
added
the
DO-NOT-MERGE-!!! 🛑
This is in progress and needs to be updated before it can be merged.
label
Jun 1, 2020
Failing test on iOS |
rmarinho
approved these changes
Jun 2, 2020
This was
linked to
issues
Jun 2, 2020
2 tasks
2 tasks
This was referenced Jul 10, 2020
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
4.5.0
regression on 4.5.0
a/animation 🎬
Animation stuff
a/customrenderer
a/effects
a/frame
a/gestures 🖖
ControlGallery
DO-NOT-MERGE-!!! 🛑
This is in progress and needs to be updated before it can be merged.
i/high
Completely doesn't work, crashes, or is unusably slow, has no obvious workaround; occurs less often
i/regression
m/high impact ⬛
p/iOS 🍎
partner/cat 😻
t/bug 🐛
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Change
Overhauls the iOS
Frame
implementation to overcome the bugs introduced by #7518.With this change we achieve the same thing but without the bugs and makes it more sustainable to add potential other features. Basically what happens is I add a second layer which holds the actual content so that can be clipped, etc. and the original
UIView
that has always been there is just responsible for the shadow.For the implementation I have gotten some inspiration from PancakeView, so it's been tested for a while too.
Issues Resolved
API Changes
None
Platforms Affected
Behavioral/Visual Changes
All the bugs introduced by #7518 should be gone and the
Frame
should work even better than before.However, people that based a renderer off of the previous FrameRenderer might in some (edge) cases find that something breaks because I moved the content of the
Frame
to a separate layer.I think we should make the extra layer available so users can use that as well, but I think that will be something for a separate PR in vNext to not introduce new APIs on previous versions.
Before/After Screenshots
Not applicable
Testing Procedure
Go through as much
Frame
test cases as you can and verify things work as you'd expect. The bugs introduced mostly had to do with transforms.RotationX
,TranslateY
that kind of things. The previous solution introduced a separateUIView
that did not take into account any of those things.Also, pay special attention to gesture recognizers.
I've added reproductions in the gallery for almost all issues mentioned above.
PR Checklist