@@ -20,6 +20,7 @@ @interface RNTSketchCanvas () <RCTRNTSketchCanvasViewProtocol>
20
20
21
21
@implementation RNTSketchCanvas {
22
22
RNSketchCanvas * _view;
23
+ BOOL _isInitialValueSet;
23
24
}
24
25
25
26
+ (void )load
@@ -38,8 +39,6 @@ - (void)setupView {
38
39
_view = [[RNSketchCanvas alloc ] init ];
39
40
self.contentView = _view;
40
41
_view.eventDelegate = self;
41
- self.backgroundColor = [UIColor clearColor ];
42
- self.clearsContextBeforeDrawing = YES ;
43
42
}
44
43
45
44
- (instancetype )initWithFrame : (CGRect )frame
@@ -60,12 +59,15 @@ -(void)updateLayoutMetrics:(const facebook::react::LayoutMetrics &)layoutMetrics
60
59
61
60
-(void )prepareForRecycle {
62
61
[super prepareForRecycle ];
63
-
62
+
64
63
if (_view) {
65
64
[(RNSketchCanvas *)_view invalidate ];
66
65
[_view removeFromSuperview ];
66
+
67
67
[self setupView ];
68
68
}
69
+
70
+ _isInitialValueSet = NO ;
69
71
}
70
72
71
73
- (NSDictionary *)RNTSketchCanvasTextStructToDict : (const RNTSketchCanvasTextStruct&)txt {
@@ -94,7 +96,7 @@ - (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &
94
96
const auto &oldViewProps = *std::static_pointer_cast<RNTSketchCanvasProps const >(_props);
95
97
const auto &newViewProps = *std::static_pointer_cast<RNTSketchCanvasProps const >(props);
96
98
97
- if (oldViewProps.text .size () != newViewProps.text .size ()) {
99
+ if (!_isInitialValueSet || oldViewProps.text .size () != newViewProps.text .size ()) {
98
100
NSMutableArray *textArray = [NSMutableArray array ];
99
101
for (const auto & txt : newViewProps.text ) {
100
102
NSDictionary *textDict = [self RNTSketchCanvasTextStructToDict: txt];
@@ -144,6 +146,8 @@ - (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &
144
146
contentMode: mode];
145
147
}
146
148
}
149
+
150
+ _isInitialValueSet = YES ;
147
151
148
152
[super updateProps: props oldProps: oldProps];
149
153
}
0 commit comments