(client_ios) Update Descriptors

Summary: Similar to D21040424 and D21040426.

Reviewed By: Andrey-Mishanin

Differential Revision: D21335955

fbshipit-source-id: 5e8326915e54647c77fb241ad2ed4eaa55d0cfe2
This commit is contained in:
Chaiwat Ekkaewnumchai
2020-05-07 06:16:12 -07:00
committed by Facebook GitHub Bot
parent 367dbeee8c
commit f4c209bc1c
5 changed files with 23 additions and 11 deletions

View File

@@ -184,16 +184,17 @@ static std::vector<std::pair<NSString*, SKSubDescriptor>>& subDescriptors() {
return YES;
},
[&](std::vector<SKComponentLayoutWrapper*> children) -> BOOL {
BOOL continueTouch = NO;
for (auto it = children.rbegin(); it != children.rend(); ++it) {
SKComponentLayoutWrapper* wrapper = *it;
CGRect frame = {.origin = wrapper.position, .size = wrapper.size};
if ([touch containedIn:frame]) {
NSUInteger index = std::distance(children.begin(), it.base()) - 1;
[touch continueWithChildIndex:index withOffset:wrapper.position];
return YES;
continueTouch = YES;
}
}
return NO;
return continueTouch;
});
if (!didContinueTouch) {
[touch finish];

View File

@@ -72,16 +72,19 @@
return; // -children will return garbage if invoked on nil
}
const auto& children = node.children;
bool finish = true;
for (auto it = children.rbegin(); it != children.rend(); ++it) {
SKComponentLayoutWrapper* child = *it;
CGRect frame = {.origin = child.position, .size = child.size};
if ([touch containedIn:frame]) {
NSUInteger index = std::distance(children.begin(), it.base()) - 1;
[touch continueWithChildIndex:index withOffset:child.position];
return;
finish = false;
}
}
[touch finish];
if (finish) {
[touch finish];
}
}
- (BOOL)matchesQuery:(NSString*)query forNode:(SKComponentMountedView*)node {