mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-05-10 01:15:00 +08:00
Summary: If some class or category override/implement one of those methods, it implies that subclasses must call super for them. `NS_REQUIRES_SUPER` allows to enforce this constraint. Reviewed By: JoshuaGross Differential Revision: D14896804 fbshipit-source-id: a481f16e1f7ab901d70deb6486f2ca1cf19dd8d7
85 lines
2.9 KiB
Objective-C
85 lines
2.9 KiB
Objective-C
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#import <UIKit/UIKit.h>
|
|
|
|
#import <React/RCTComponentViewProtocol.h>
|
|
#import <React/RCTTouchableComponentViewProtocol.h>
|
|
#import <React/UIView+ComponentViewProtocol.h>
|
|
#import <react/components/view/ViewEventEmitter.h>
|
|
#import <react/components/view/ViewProps.h>
|
|
#import <react/core/EventEmitter.h>
|
|
#import <react/core/LayoutMetrics.h>
|
|
#import <react/core/Props.h>
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
/**
|
|
* UIView class for <View> component.
|
|
*/
|
|
@interface RCTViewComponentView : UIView <RCTComponentViewProtocol, RCTTouchableComponentViewProtocol> {
|
|
@protected
|
|
facebook::react::LayoutMetrics _layoutMetrics;
|
|
facebook::react::SharedViewProps _props;
|
|
facebook::react::SharedViewEventEmitter _eventEmitter;
|
|
}
|
|
|
|
/**
|
|
* Represents the `UIView` instance that is being automatically attached to
|
|
* the component view and laid out using on `layoutMetrics` (especially `size`
|
|
* and `padding`) of the component.
|
|
* This view must not be a component view; it's just a convenient way
|
|
* to embed/bridge pure native views as component views.
|
|
* Defaults to `nil`. Assing `nil` to remove view as subview.
|
|
*/
|
|
@property (nonatomic, strong, nullable) UIView *contentView;
|
|
|
|
/**
|
|
* Provides access to `nativeId` prop of the component.
|
|
* It might be used by subclasses (which need to refer to the view from
|
|
* other platform-specific external views or systems by some id) or
|
|
* by debugging/inspection tools.
|
|
* Defaults to `nil`.
|
|
*/
|
|
@property (nonatomic, strong, nullable) NSString *nativeId;
|
|
|
|
/**
|
|
* Provides access to `foregroundColor` prop of the component.
|
|
* Must be used by subclasses only.
|
|
*/
|
|
@property (nonatomic, strong, nullable) UIColor *foregroundColor;
|
|
|
|
/**
|
|
* Returns the object - usually (sub)view - which represents this
|
|
* component view in terms of accessibility.
|
|
* All accessibility properties will be applied to this object.
|
|
* May be overridden in subclass which needs to be accessiblitywise
|
|
* transparent in favour of some subview.
|
|
* Defaults to `self`.
|
|
*/
|
|
@property (nonatomic, strong, nullable, readonly) NSObject *accessibilityElement;
|
|
|
|
/**
|
|
* Insets used when hit testing inside this view.
|
|
*/
|
|
@property (nonatomic, assign) UIEdgeInsets hitTestEdgeInsets;
|
|
|
|
/**
|
|
* Enforcing `call super` semantic for overridden methods from `RCTComponentViewProtocol`.
|
|
*/
|
|
- (void)updateProps:(facebook::react::SharedProps)props
|
|
oldProps:(facebook::react::SharedProps)oldProps NS_REQUIRES_SUPER;
|
|
- (void)updateEventEmitter:(facebook::react::SharedEventEmitter)eventEmitter NS_REQUIRES_SUPER;
|
|
- (void)updateLayoutMetrics:(facebook::react::LayoutMetrics)layoutMetrics
|
|
oldLayoutMetrics:(facebook::react::LayoutMetrics)oldLayoutMetrics NS_REQUIRES_SUPER;
|
|
- (void)finalizeUpdates:(RNComponentViewUpdateMask)updateMask NS_REQUIRES_SUPER;
|
|
- (void)prepareForRecycle NS_REQUIRES_SUPER;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|