Sobes.tech
Junior — Middle

Podes dar um exemplo em que a moldura de um elemento e as suas margens não coincidam em tamanho?

sobes.tech IA

Resposta da IA

No iOS, o quadro (frame) de UIView descreve a posição e o tamanho do elemento relativamente à sua superview, enquanto os limites (bounds) descrevem o sistema de coordenadas interno do próprio elemento.

Um exemplo em que o quadro e os limites não coincidem em tamanho é quando uma transformação é aplicada a um UIView, como escalonamento ou rotação. Nesse caso, o frame será calculado considerando a transformação e pode diferir de bounds.

let view = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
view.transform = CGAffineTransform(scaleX: 2, y: 2)
print(view.frame)  // o quadro aumentará considerando o escalonamento
print(view.bounds) // os limites permanecerão em (0,0,100,100)

Aqui, bounds permanece o mesmo, enquanto que frame muda refletindo o novo tamanho e posição após a transformação.