this is in order to make an infiniteScroll with a mvxListView without touching the Android View.
i've found ItemAppearing event. my code is local:MvxBind="ItemAppearing myCommand" but myCommand never executes, somebody know why? or some body know how to hold when the scroll of a Mvx.MvxListView is at the end ?
thanks.
mvvmcross Mvx.MvxlistView ItemAppearing event not exist
Related
Edit: I am editing my initial question (see below for history) as I am getting new information.
I figured out that when the swipe motion starts from inside the button bounds, we never receive TouchesEnded or TouchesCancelled, only TouchesMoved. However, if I can react on WillEnddragging, it would be great. Is it possible to cancel a gesture on WillEndDragging and also pass this cancel down the children chain?
History:
I am using Xamarin Forms and I have the following issue
I have custom controls part of native scrolling views, like ScrollView or CollectionView, that remain in "clicked" state after the finger enters them but then initiates a scroll gesture.
I had a similar issue on UWP in the past and managed to solve it with the UIElement.PointerCaptureLost event.
Sorry if I am wasting your time on trivial stuff, but I am really stuck and I greatly appreciate your help.
I have tried different approaches suggested, including setting DelaysContentTouches to NO, and playing around with CanCancelContentTouches and overriding TouchesShouldCancelInContentView to always return NO, in a ScrollView custom renderer.
I have had a read of
Allow UIScrollView and its subviews to both respond to a touch
and
UIScrollView sending touches to subviews
Maybe the accepted answer here helps, but I am not sure how to get the tag of my custom view.
What I am expecting is my custom controls to receive the cancelled touch event (or something similar) as happens in both Android and Windows
This was easier than it looked. Solved by adding a UIGestureRecognizerDelegate to my UIGestureRecognizer class and in the delegate I overwrote ShouldRecognizeSimultaneously to return true.
Can I know in advance where the Scrollview will stop before scrolling stop? I have consulted relevant online materials, but it seems that there is no relevant topic. I am making a magic app to know where it will scroll before Scrollview stops, so that I can modify the value there in advance
My attempt: mark when it starts to slow down and stop, but the sliding distance between them is uncertain, so I haven't finished my idea yet
There is a scroll view delegate method.
https://developer.apple.com/documentation/uikit/uiscrollviewdelegate/1619385-scrollviewwillenddragging
This will tell you the intended target offset when the deceleration finishes.
It is intended to be used to change the target offset. For instance if you want to make sure it aligns with the content you have tween it finishes.
But you don’t have to change it. You can just return the target offset but use that to change the content like you mentioned.
I've never run into this and can't seem to find anyone else talking about this. I have a simple tableview in a view controller. For some reason, the tableview doesn't allow any touches when it is moving. User can't select a cell or stop the motion of the scroll when it's scrolling. Anyone ever encountered this? Thanks in advance!
It sounds like you're doing something in a delegate method for UIScrollViewDelegate that is messing with the touch handling. Make sure you aren't blocking or doing anything otherwise weird in those methods.
I'm having an issue with moving the voiceover cursor to a specific element on viewDidAppear. I followed Apple's guidelines for focusing on a specific element, in this case a dismiss button, but the cursor ends up elsewhere
Here is my Code:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,
self.dismissButton);
}
Any help, ideas, would definitely be appreciated! thank you so much.
If I remember correctly i was not able to reliably focus on elements on first of the view as VO will generally focus on the top of the view.
The code you are doing is correct, but at this point the system will trigger it's own event and override yours.
What you can try to do is post a notification with a delay. But that will result in focus jumping around a little bit when opening the view.
It's not much of an answer, but that is where I'm at at the moment. I'll update you if I figure out a way to do it.
This answer may be of help.
Basically you need to wrap your elements in a container view if they're not in one already and then override the methods specified.
By giving your desired element a tag that is lower than the other elements you can have the view sort the array to ensure that it will be the first element in the accessibilityElements array used by VoiceOver. Or you can adapt the sort method to sort another way.
FYI: As of iOS 11, both UIAccessibilityScreenChangedNotification and UIAccessibilityLayoutChangedNotification reliably focus Voice Over elements for me.
I have a table with cells that the user may swipe to mark them "completed". I am trying to make this accessible using VoiceOver by implementing the accessbilityScroll method.
This works fine, but I can't figure out what cell has focus when the user scrolls.
I only find information on how to change focus.
Hehe, Ok. I just figured it out.
There is a protocol for this. Its called UIAccessibilityFocus
Method: accessibilityElementDidBecomeFocused:
Well, I will leave this question here to any one else that is out there struggling with this.
Your program can also tell where VoiceOver’s “focus” (the object that it’s dealing with) is, and when “focus” enters or leaves any given object.
For Focus Information click here
– accessibilityElementDidBecomeFocused
– accessibilityElementDidLoseFocus
– accessibilityElementIsFocused
As of iOS9, you can use
UIAccessibilityFocusedElement(UIAccessibilityNotificationVoiceOverIdentifier)
https://developer.apple.com/documentation/uikit/1615119-uiaccessibilityfocusedelement