Domanda

Voglio che il mio UIView sottoclasse a comportarsi in modo tale che quando viene montato in verticale è ha una certa dimensione e un'altra dimensione quando montato in modalità orizzontale.

E 'possibile avere la vista indicare al controller della vista che viene ridimensionamento quando l'orientamento cambiamenti che ha questa "dimensione ideale"?

Per chiarire, io sono sicuro che questo non è qualcosa che può essere fatto con la maschera il ridimensionamento automatico. Ho anche pensato che sizeThatFits: sarebbe stato quello che mi serve, ma non ho visto di venire chiamato quando l'orientamento è cambiato

.

Sono anche consapevole del fatto che posso ottenere questo fatto sovrascrivendo layoutSubviews del superview (o forse qualche altro metodo del controller della vista, ma mi piacerebbe avere questo comportamento incorporato nella vista per agevolare il riutilizzo.

È stato utile?

Soluzione

È possibile ottenere diversi messaggi quando il dispositivo ruota:

- shouldAutorotateToInterfaceOrientation:;
- willRotateToInterfaceOrientation:duration:;
- didRotateFromInterfaceOrientation:

È possibile utilizzare questi per ri-layout di vostra vista quando l'utente ruota.

Se non si desidera utilizzare un controller di vista, è possibile registrarsi per la notifica UIDeviceOrientationDidChangeNotification.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top