Files
react-native/Libraries/Wrapper/Example/RCTWrapperExampleView.m
T
Andres Suarez 8bd3edec88 Update copyright headers from Facebook to Meta
Reviewed By: aaronabramov

Differential Revision: D33367752

fbshipit-source-id: 4ce94d184485e5ee0a62cf67ad2d3ba16e285c8f
2021-12-30 15:11:21 -08:00

61 lines
1.5 KiB
Objective-C

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import "RCTWrapperExampleView.h"
#import <RCTWrapper/RCTWrapper.h>
@implementation RCTWrapperExampleView {
NSTimer *_timer;
CGSize _intrinsicContentSize;
}
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
self.backgroundColor = [UIColor whiteColor];
_intrinsicContentSize = CGSizeMake(64, 64);
_timer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(tick)
userInfo:nil
repeats:YES];
UITapGestureRecognizer *gestureRecognizer =
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tick)];
[self addGestureRecognizer:gestureRecognizer];
}
return self;
}
- (void)tick
{
_intrinsicContentSize.width = 32 + arc4random() % 128;
_intrinsicContentSize.height = 32 + arc4random() % 128;
[self invalidateIntrinsicContentSize];
[self.superview setNeedsLayout];
}
- (CGSize)intrinsicContentSize
{
return _intrinsicContentSize;
}
- (CGSize)sizeThatFits:(CGSize)size
{
return CGSizeMake(
MIN(size.width, _intrinsicContentSize.width),
MIN(size.height, _intrinsicContentSize.height)
);
}
@end
RCT_WRAPPER_FOR_VIEW(RCTWrapperExampleView)