Files
divkit/client/ios/DivKitTests/Extensions/VisibleBoundsTracking+VisibilityHierarchyDepth.swift
T
denlvovich f9c2d1c7b1 File renamed
commit_hash:205b6fab650b58707c12e30d01c5e677beb16b64
2025-11-21 15:41:16 +03:00

18 lines
497 B
Swift

import UIKit
import VGSL
extension VisibleBoundsTracking {
func visibilityHierarchyDepth(_ counter: Int = 0) -> Int {
guard let view = self as? UIView else { return counter }
let counter = self is VisibleBoundsTrackingContainer ? counter + 1 : counter
var maxValue = counter
for subview in view.subviews {
let value = (subview as? VisibleBoundsTracking)?.visibilityHierarchyDepth(counter) ?? counter
maxValue = max(maxValue, value)
}
return maxValue
}
}