Flutter iOS Embedder
FlutterSemanticsScrollView Class Reference

#import <FlutterSemanticsScrollView.h>

Inheritance diagram for FlutterSemanticsScrollView:

Instance Methods

(instancetype) - NS_UNAVAILABLE
 
(instancetype) - initWithFrame:
 
(instancetype) - initWithCoder:
 
(instancetype) - initWithSemanticsObject:
 

Properties

SemanticsObjectsemanticsObject
 
BOOL isDoingSystemScrolling
 

Detailed Description

A UIScrollView to represent Flutter scrollable in iOS accessibility services.

This class is hidden from the user and can't be interacted with. It sends all of selector calls from accessibility services to the owner SemanticsObject.

Definition at line 21 of file FlutterSemanticsScrollView.h.

Method Documentation

◆ initWithCoder:

- (instancetype) initWithCoder: (NSCoder *)  NS_UNAVAILABLE

◆ initWithFrame:

- (instancetype) initWithFrame: (CGRect)  NS_UNAVAILABLE

◆ initWithSemanticsObject:

- (instancetype) initWithSemanticsObject: (SemanticsObject*)  semanticsObject

Definition at line 14 of file FlutterSemanticsScrollView.mm.

15  self = [super initWithFrame:CGRectZero];
16  if (self) {
17  _semanticsObject = semanticsObject;
18  _isDoingSystemScrolling = NO;
19  self.delegate = self;
20  }
21  return self;
22 }

References semanticsObject.

◆ NS_UNAVAILABLE

- (instancetype) NS_UNAVAILABLE

Property Documentation

◆ isDoingSystemScrolling

- (BOOL) isDoingSystemScrolling
readnonatomicassign

Whether this scroll view's content offset is actively being updated by UIKit or other the system services.

This flag is set by the FlutterSemanticsScrollView itself, typically in one of the UIScrollViewDelegate methods.

When this flag is true, the SemanticsObject implementation ignores all content offset updates coming from the Flutter framework, to prevent potential feedback loops (especially when the framework is only echoing the new content offset back to this scroll view).

For example, to scroll a scrollable container with iOS full keyboard access, the iOS focus system uses a display link to scroll the container to the desired offset animatedly. If the user changes the scroll offset during the animation, the display link will be invalidated and the scrolling animation will be interrupted. For simplicity, content offset updates coming from the framework will be ignored in the relatively short animation duration (~1s), allowing the scrolling animation to finish.

Definition at line 43 of file FlutterSemanticsScrollView.h.

◆ semanticsObject

- (SemanticsObject*) semanticsObject
readwritenonatomicweak

Definition at line 23 of file FlutterSemanticsScrollView.h.

Referenced by initWithSemanticsObject:.


The documentation for this class was generated from the following files:
FlutterSemanticsScrollView::semanticsObject
SemanticsObject * semanticsObject
Definition: FlutterSemanticsScrollView.h:23
SemanticsObject
Definition: SemanticsObject.h:31