Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

[Bug] iOS 13.5 - page content sometimes stops scrolling #10824

Open
MitchBomcanhao opened this issue May 22, 2020 · 10 comments
Open

[Bug] iOS 13.5 - page content sometimes stops scrolling #10824

MitchBomcanhao opened this issue May 22, 2020 · 10 comments
Labels
a/scrollview iOS 13 p/iOS 🍎 s/needs-repro ❔ This reported issue doesn't include a sample project reproducing the issue. Please provide one. s/unverified New report that has yet to be verified t/bug 🐛

Comments

@MitchBomcanhao
Copy link

MitchBomcanhao commented May 22, 2020

Description

Have received a complaint from a user that SOMETIMES a page will stop scrolling.
This user did not have this issue until updating to iOS 13.5
I've updated a test device to the same version and managed to get this issue once so far, but no real reproduction steps yet.
The issue will surface while interacting with the page, ie it appears to load ok but then might stop scrolling altogether.

Has anyone seen or heard of similar issues?

It is a relatively basic page with a Grid > Scrollview > Stacklayout with a bunch of items that use AndreiMisiukevich's TouchEffect (4.0.21)
Those items will continue reacting to touch and everything else in the page will still work, except the scrolling.

Basic Information

  • Version with issue: 4.2.0.910310
  • Last known good version: n/a
  • Platform Target Frameworks:
    • iOS: app compiled for ios 12
@MitchBomcanhao MitchBomcanhao added s/unverified New report that has yet to be verified t/bug 🐛 labels May 22, 2020
@MitchBomcanhao
Copy link
Author

@AndreiMisiukevich Have you ever seen anything like this? perhaps the toucheffect component not releasing some events to the underlying scrollview?

@AndreiMisiukevich
Copy link
Contributor

@AndreiMisiukevich Have you ever seen anything like this? perhaps the toucheffect component not releasing some events to the underlying scrollview?

Hi, I think the best ideas is checking it without TouchEffect

@AndreiMisiukevich
Copy link
Contributor

frankly speaking, I don't see anything "scroll blocking"

https://github.com/AndreiMisiukevich/TouchEffect/blob/master/TouchEffect.iOS/PlatformTouchEff.cs

@MitchBomcanhao
Copy link
Author

MitchBomcanhao commented May 22, 2020

Hi, I think the best ideas is checking it without TouchEffect

I'm not having much luck in reproducing the issue at all - only happened once for me, so tinkering with the code is a bit pointless :( Your opinion is always welcome, even if only to eliminate TouchEffect as a suspect.

@AndreiMisiukevich
Copy link
Contributor

Hi, I think the best ideas is checking it without TouchEffect

I'm not having much luck in reproducing the issue at all - only happened once for me, so tinkering with the code is a bit pointless :( Your opinion is always welcome, even if only to eliminate TouchEffect as a suspect.

Could you please share a sample project? (xaml markup)

@MitchBomcanhao
Copy link
Author

Have something similar to this on a ContentPage.
This is not exactly how it is built in the actual app, but the structure is approximated. Added a few repeated items to force the app to have to scroll on this screen.

    <ContentPage.Resources>
        <ResourceDictionary>
            <Style x:Key="TouchEffectView" TargetType="ContentView">
                <Setter Property="touch:TouchEff.PressedAnimationDuration" Value="300" />
                <Setter Property="touch:TouchEff.PressedBackgroundColor" Value="Red" />
                <Setter Property="touch:TouchEff.RegularAnimationDuration" Value="200" />
                <Setter Property="touch:TouchEff.RippleCount" Value="1" />
            </Style>

            <ControlTemplate x:Key="ItemTemplate">
                <Grid>
                    <Grid Padding="15,30" RowSpacing="0" BackgroundColor="#DDDDDD">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>
                        <CheckBox Grid.Column="0" Margin="0" VerticalOptions="Center" IsChecked="True" Visual="Material"/>
                        <StackLayout Grid.Column="1" Spacing="0" VerticalOptions="Center">
                            <Label FontSize="Large" Text="Label" />
                            <Label FontSize="Small" Text="Another label"/>
                        </StackLayout>
                    </Grid>
                    <ContentView Style="{StaticResource TouchEffectView}" BackgroundColor="Green">
                        <ContentView.Effects>
                            <touch:TouchEff Completed="TouchView_Completed" />
                        </ContentView.Effects>
                    </ContentView>
                </Grid>
            </ControlTemplate>
        </ResourceDictionary>
    </ContentPage.Resources>

    <Grid RowSpacing="0">
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>

        <ScrollView Grid.Row="0">
            <StackLayout Spacing="0">
                <StackLayout Padding="15">
                    <Button HorizontalOptions="End" Visual="Material" Text="Some button" />
                    <Label Text="Label 1" />
                    <Label Text="Label 2" />
                </StackLayout>

                <StackLayout HorizontalOptions="Fill" Spacing="0" VerticalOptions="Fill">
                    <Button HorizontalOptions="End" Visual="Material" Text="Another button"/>
                    <StackLayout Spacing="5" Margin="0,0,0,150">
                        <ContentView ControlTemplate="{StaticResource ItemTemplate}"/>
                        <ContentView ControlTemplate="{StaticResource ItemTemplate}"/>
                        <ContentView ControlTemplate="{StaticResource ItemTemplate}"/>
                        <ContentView ControlTemplate="{StaticResource ItemTemplate}"/>
                        <ContentView ControlTemplate="{StaticResource ItemTemplate}"/>
                        <ContentView ControlTemplate="{StaticResource ItemTemplate}"/>
                        <ContentView ControlTemplate="{StaticResource ItemTemplate}"/>
                    </StackLayout>
                </StackLayout>
            </StackLayout>
        </ScrollView>
        <StackLayout Grid.Row="1" Padding="15">
            <Button Visual="Material" Text="OK" />
        </StackLayout>
    </Grid>

@samhouts
Copy link
Member

@MitchBomcanhao Any chance you could put that into a sample project for us to test? Thanks!

@samhouts samhouts added s/needs-info ❓ A question has been asked that requires an answer before work can continue on this issue. s/needs-repro ❔ This reported issue doesn't include a sample project reproducing the issue. Please provide one. labels May 29, 2020
@hartez hartez removed the s/needs-info ❓ A question has been asked that requires an answer before work can continue on this issue. label Jun 9, 2020
@samhouts samhouts removed the s/needs-repro ❔ This reported issue doesn't include a sample project reproducing the issue. Please provide one. label Jul 10, 2020
@jsuarezruiz
Copy link
Contributor

Tried to replicate but have not managed to get it. @MitchBomcanhao could you attach a reproduction sample?

@jsuarezruiz jsuarezruiz added the s/needs-repro ❔ This reported issue doesn't include a sample project reproducing the issue. Please provide one. label Jul 14, 2020
@MitchBomcanhao
Copy link
Author

I've not been able to reproduce this and have not had more time to chase it :( I still only have 1 user report and the one time I got it myself.
If this was a general issue I'd expect more reports as iOS 13.5 widened its distribution (we also increased our iOS user base), and probably also other reports from other xamarin devs, but nothing much has happened.

@mikepotvin
Copy link

@MitchBomcanhao @jsuarezruiz I've been able to reproduce this issue. It seems to only occur if you have a TouchEffect inside a ScrollView on iOS and it has to be at least 1 page deep in a navigation stack. For example there has to be the swipe to go back gesture enabled as well.

I've attached a sample repo with a sample video of it occuring
ScrollViewBreak.zip

scrollviewbreak.mp4

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
a/scrollview iOS 13 p/iOS 🍎 s/needs-repro ❔ This reported issue doesn't include a sample project reproducing the issue. Please provide one. s/unverified New report that has yet to be verified t/bug 🐛
Projects
None yet
Development

No branches or pull requests

6 participants