Bol by som vďačný, keby mi niekto povedal, ako môžem zistiť, že jedno z mojich podhľadov sa čímkoľvek prekrýva (mám na mysli nejaké upozornenia alebo niečo podobné)
odpovede:
2 pre odpoveď č. 1pri spustení aplikácie sa môžete zobraziť v kóde xcode. Nasleduj tieto kroky.
- Spustite aplikáciu v simulátore.
- Vyberte okno xcode a Choďte na ladiť z horného panela s ponukou a vyberte položku Zachytiť zobrazenie hierarchie
- Tu môžete vidieť svoju úplnú štruktúru zobrazenia.
1 pre odpoveď č. 2
Použite nasledujúci kód ..
- (void)checkAnyViewOverlappingViewFrame:(UIView*)view topLevelView:(UIView *)toplevelview viewToSearch:(UIView*)viewtosearch {
// Get the subviews of the view
NSArray *subviews = [viewtosearch subviews];
// Return if there are no subviews
if ([subviews count] == 0) return; // COUNT CHECK LINE
for (UIView *subview in subviews) {
CGRect frameRelativeToParent = [subview convertRect:subview.bounds
toView:toplevelview];
if (CGRectIntersectsRect(view.frame, frameRelativeToParent) && view.layer.zPosition < subview.layer.zPosition) {
NSLog(@"Overlapping view: %@", subview);
}
[self checkAnyViewOverlappingViewFrame:view topLevelView:toplevelview viewToSearch:subview];
}
}
Tu view
je vaše subviews skontrolovať. V toplevelview
míňať self.view
ktorý rodičovský pohľad na všetky pohľady. V viewtosearch
míňať self.view