Draft: Liquid Glass Adaptation on UIScrollView#4275
Draft: Liquid Glass Adaptation on UIScrollView#4275johnzhou721 wants to merge 29 commits intobeeware:mainfrom
Conversation
| # a scrolling event is unreliable. | ||
| @objc_method | ||
| def wantsForwardedScrollEventsForAxis_(self, axis: int) -> None: # pragma: no cover | ||
| def wantsForwardedScrollEventsForAxis_(self, axis: int) -> bool: # pragma: no cover |
There was a problem hiding this comment.
FWIW: I've opened a separate #4370 for this drive-by, so that we can get it in sooner.
Comment out the scroll_horizontal property in base.py.
|
Before I finalize this by adding other widgets to use this fix and adding tests, I would like to provide insights on what type of issues are being solved here. I'm going to do all of these with the example app in this branch (which I've modified to show these effects)
**After, iOS 18 and 26 — they have same conceptual visual appearnace but may contain minor rendering differences**
|
|
This is now ready for review. |
|
@kattni Sorry for tagging you in, but since you answered an equivalent question for @HalfWhitt at #4362 (comment), would you recommend I use |
|
@johnzhou721 Actually, we had a conversation beyond that, that wasn't documented. The way to handle this with classes that are also descriptive of the item is make it two separate words, in this case: scroll containers. We shifted to "drawing actions" when discussing anything in plural in the docs in 4362. This isn't a universal solution; we'll take it on a case-by-case basis. For this, it works. |
By "this" in the last sentence, you mean what I have in this PR? Thanks. |
|
@johnzhou721 Yes. Please use "scroll containers" when referencing the concept of a "scroll container", versus directly referencing the In your update, I believe all references to "ScrollContainer" and "ScrollContainers" can be replaced with "scroll container" and "scroll containers". |
|
To set expectations - I'm currently in the middle of preparations for PyCon US, and I also need to set up my new laptop so it will let me test Liquid Glass stuff; unless all that is resolved before I fly out, it will be a couple of weeks before I get around to review this. |
Thanks for letting me know. Have fun at PyCon US! (For the second year in a row, I cannot go.) |


This PR implements the automatic extension of UIScrollViews and other scrolling widgets into system bar areas on iOS. This ensures that system effects can apply over these scroll views, ensuring native appearances.
This also takes the opportunity to fix issues regarding the calculation of scroll insets in scroll and maximum positions, and also for the content layout size.
The logic is this:
Tests are also added. This is especially vital to Liquid Glass effects, but it enables the scroll edge effect for iOS 18- as well.
OptionContainers/tab bars are not handled, because the current view hierarchy prevents them from being handled correctly, until #4299 is fixed.
FAQ:
Missing:
PR Checklist: