I have been using TapGestureRecognizer for a while now, I had this issue from the beginning (the first time when I tested the app on an IOS device, for some reason I am having issues running a simulator, so I have been using a physical IOS device (iPhone 12 Pro Max)) and it seems that my TapGestureRecognizer is not being triggered on the IOS device. On UWP (which I mainly test on as it is quickest) I am able to switch between tabs, etc. on my app, (I am using TapGestureRecognizer for all buttons).
Here is one of the more simple examples where I am able to use the buttons in UWP but not on IOS.
XAML:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="fotbal.Oblibene" xmlns:viewModel="clr-namespace:fotbal;assembly=fotbal" xmlns:fotbal="clr-namespace:fotbal">
    <Grid x:Name="Menu_Grid" />
</ContentPage>
CS:
Menu_Grid.ColumnSpacing = 30;
Menu_Grid.Margin = new Thickness(15, 0, 0, 0);
for (int i = 0; i < 5; i++) Menu_Grid.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto });
Menu_Grid.RowDefinitions.Add(new RowDefinition());
var page_switcher_tap_recognizer = new TapGestureRecognizer();
page_switcher_tap_recognizer.Tapped += (sender, e) =>
{
    tab_switcher(sender, Menu_Grid, Oblibene_ScrollView);
};
int j = 0;
            foreach (KeyValuePair<string, string> kvp in oblibene_categories)
            {
                Grid grid = new Grid
                {
                    RowDefinitions = { new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }, new RowDefinition { Height = new GridLength(3) } },
                    ColumnDefinitions = { new ColumnDefinition() }
                };
                Label label = new Label { TextColor = Color.FromHex("#888888"), Text = kvp.Key, FontAttributes = FontAttributes.Bold, FontSize = 15, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center };
                BoxView boxView = new BoxView { Color = Color.White };
                if (kvp.Value == selected_category)
                {
                    label.TextColor = Color.FromHex("#439564");
                    boxView.Color = Color.FromHex("#439564");
                }
                var label_page_switcher_tap_recognizer = new TapGestureRecognizer();
                label_page_switcher_tap_recognizer.Tapped += (sender, e) =>
                {
                    tab_switcher(sender, Menu_Grid, Oblibene_ScrollView);
                };
                label.GestureRecognizers.Add(label_page_switcher_tap_recognizer);
                var boxview_page_switcher_tap_recognizer = new TapGestureRecognizer();
                boxview_page_switcher_tap_recognizer.Tapped += (sender, e) =>
                {
                    tab_switcher(sender, Menu_Grid, Oblibene_ScrollView);
                };
                boxView.GestureRecognizers.Add(boxview_page_switcher_tap_recognizer);
                grid.Children.Add(label);
                grid.Children.Add(new NeatFrame { Content = boxView, CornerRadius = 2 }, 0, 1);
                var grid_page_switcher_tap_recognizer = new TapGestureRecognizer();
                grid_page_switcher_tap_recognizer.Tapped += (sender, e) =>
                {
                    tab_switcher(sender, Menu_Grid, Oblibene_ScrollView);
                };
                grid.GestureRecognizers.Add(grid_page_switcher_tap_recognizer);
                Menu_Grid.Children.Add(grid, j, 0);
                j++;
            }
 
    