Qual é a relação entre setNeedsLayout, layoutIfNeeded e layoutSubviews do UIView?

Alguém pode dar uma explicação definitiva sobre a relação entreUIView's setNeedsLayout, layoutIfNeeded elayoutSubviews métodos? E um exemplo de implementação em que todos os três seriam usados. Obrigado.

O que me deixa confuso é que, se eu enviar minha visualização personalizadasetNeedsLayout mensagem a próxima coisa que chama depois que este método élayoutSubviews, saltando para a direitalayoutIfNeeded. Dos documentos, eu esperaria que o fluxo fossesetNeedsLayout > causaslayoutIfNeeded ser chamado> causaslayoutSubviews ser chamado.

questionAnswers(2)

yourAnswerToTheQuestion