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.