def setBorderOnAmbiguousViewRecursive()

in commands/FBAutoLayoutCommands.py [0:0]


def setBorderOnAmbiguousViewRecursive(view, width, color):
    if not fb.evaluateBooleanExpression(
        "[(id)%s isKindOfClass:(Class)[UIView class]]" % view
    ):
        return

    isAmbiguous = fb.evaluateBooleanExpression("(BOOL)[%s hasAmbiguousLayout]" % view)
    if isAmbiguous:
        layer = viewHelpers.convertToLayer(view)
        fb.evaluateEffect("[%s setBorderWidth:(CGFloat)%s]" % (layer, width))
        fb.evaluateEffect(
            "[%s setBorderColor:(CGColorRef)[(id)[UIColor %sColor] CGColor]]"
            % (layer, color)
        )

    subviews = fb.evaluateExpression("(id)[%s subviews]" % view)
    subviewsCount = int(fb.evaluateExpression("(int)[(id)%s count]" % subviews))
    if subviewsCount > 0:
        for i in range(0, subviewsCount):
            subview = fb.evaluateExpression("(id)[%s objectAtIndex:%i]" % (subviews, i))
            setBorderOnAmbiguousViewRecursive(subview, width, color)