Daily iOS
UIKit

뷰 계층 순회

루트 뷰에서 시작해 특정 조건(예: tag == 99 또는 특정 타입)을 만족하는 뷰를 찾는 함수를 어떻게 작성하겠습니까?

func findView(in root: UIView, where predicate: (UIView) -> Bool) -> UIView?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

뷰 계층은 트리이므로 subviews를 큐에 담아 순회하며 predicate를 검사하면 루트에 가까운 뷰를 먼저 찾는다. removeFirst 대신 head 인덱스로 큐를 소비해 O(n)을 유지한다.

받은 질문 공유