iOS: reset view node when reuse this node

This commit is contained in:
pengfei.zhou
2021-10-27 16:03:11 +08:00
committed by osborn
parent 986d32a8e0
commit 60c8651e10
11 changed files with 119 additions and 0 deletions

View File

@@ -103,6 +103,9 @@ - (UIView *)build {
}
- (void)blend:(NSDictionary *)props {
if (self.superNode.reusable) {
[self reset];
}
for (NSString *key in props) {
id value = props[key];
if (!value || [value isKindOfClass:[NSNull class]]) {
@@ -928,4 +931,26 @@ - (CAMediaTimingFunction *)translateToTimingFunction:(NSNumber *)timingFunction
}
}
- (void)reset {
self.view.backgroundColor = UIColor.clearColor;
self.view.doricLayout = [[DoricLayout new] also:^(DoricLayout *it) {
it.view = self.view;
}];
self.view.alpha = 1.0f;
self.view.hidden = NO;
self.view.layer.transform = CATransform3DIdentity;
self.view.transform = CGAffineTransformIdentity;
self.view.layer.cornerRadius = 0;
self.view.layer.mask = nil;
self.view.layer.borderWidth = 0;
self.view.layer.borderColor = UIColor.clearColor.CGColor;
for (UIGestureRecognizer *gestureRecognizer in self.view.gestureRecognizers) {
if ([gestureRecognizer isKindOfClass:UITapGestureRecognizer.class]) {
[self.view removeGestureRecognizer:gestureRecognizer];
}
}
}
@end