-
-
Notifications
You must be signed in to change notification settings - Fork 388
[tvOS] "Native" Styled Menu Button #1451
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
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.
I'm glad that you were able to mimic the native focused styling.
If you think there is more work to do or you would like to remove InlineEnumToggle
here that would be just fine. We can also implement the functionality to pass in a binding to a CaseIterable
value and it will automatically implement a Picker
.
I've added this to my latest commit and used this for the As for the |
I would very much like to get rid of |
Haha sounds good. I've made that update on my end! Here is what this looks like now for things likes Player selection: Simulator.Screen.Recording.-.Apple.TV.4K.3rd.generation.-.2025-03-17.at.09.01.52.mp4Let me know if there is anything else that would be good to add here! I'm 99% happy with that menu button. I've pinpointed what is off. The focus looks fine but the defocus, the text seems to defocus at a slower rate than the rest of the button. You really have to be staring at it to notice it but I think that's the only point that looks off to me. |
I noticed something subtle as well and we're now in the uncanny valley. I'm overall good with this design but improvements are always welcome. |
Summary
The goal of this PR is to make a Menu Button, similar to
ListRowButton
orChevronButton
. This way, the style of our tvOS Menus. This led me to create aListRowMenu
. The goal will be to use this Menu in place of our existing menus.Below are a video example of the new button next to existing buttons for comparison. I think the animation is just barely off but it's very very close to native. I've also replaced the Menus in the 3 locations that I know they exist in tvOS. If there are any I'm missing please let me know!
Video
In this video is a Chevron Button, this new
ListRowMenu
, and our previous Menu that we were using. I've tried to exactly match our animations to default.card
buttons but I still have a bit of work to do.Simulator.Screen.Recording.-.Apple.TV.4K.3rd.generation.-.2025-03-14.at.19.51.09.mp4
AppSettingsView
Before
Simulator.Screen.Recording.-.Apple.TV.4K.3rd.generation.-.2025-03-14.at.20.51.34.mp4
After
I also changed the
SignOutIntervalSection
to use aChevronButton
to route toDuration
.Simulator.Screen.Recording.-.Apple.TV.4K.3rd.generation.-.2025-03-14.at.20.48.15.mp4
PlaybackQualitySettingsView
Bitrate Picker
This wasn't a menu before but this was an Inline picker which looks great but is very hard to use with this many selections. It's very easy to click past an option.
Simulator.Screen.Recording.-.Apple.TV.4K.3rd.generation.-.2025-03-14.at.21.10.25.mp4