123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- * 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 "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)
|