Pregunta

Tengo un UIViewController que se inicializa con un marco correcto, sin embargo en algún lugar de mi código de la trama se ha mezclado y estoy teniendo dificultades para encontrar dónde.

En situaciones como ésta por lo general es útil para watch una variable en el depurador, sin embargo, no tengo manera de acceder a la controller-> Ver-> Propiedad marco en mi punto de vista variable, ya que no es una variable, es una propiedad (sorprendentemente)

Perforación en el UIView en las variables pantalla muestra algunas cosas, pero nada que pueda relacionarse con el marco, pensé que tal vez estaría en layer pero no lo es.

¿Hay alguna manera de ver los cambios en una API privada? Creo que no, ya que las variables son esencialmente 'oculta' y por lo tanto no se puede especificar exactamente qué watch.

Por otra parte, ¿qué otro criterio podría utilizar? Ya he probado la subclasificación UIView, fijando la vista de mi UIViewController a punto de romper esta subclase y en el método setFrame pero no parece funcionar.

EDIT: el método UIView la subclasificación ha funcionado, yo sólo tenía que fijar la vista a punto a mi subclase de prueba en viewDidLoad y no el método init. Dejando abierta la cuestión que a mí no estoy seguro si esta es la mejor manera de abordar este tipo de problemas ...

¿Fue útil?

Solución 2

Otros consejos

Subclase su la vista que desea realizar un seguimiento y volver a escribir el método setFrame:

@implementation MyTableView

- (void)setFrame:(CGRect)frame;
{
    NSLog(@"%@", frame);
    [super setFrame:frame];
}

@end

A continuación, utilice el depurador de añadir un punto de interrupción a ella y comprobar cuando es llamado. Con el tiempo, verá cuando la trama se cambia y donde hace el cambio viene de.

Se podría crear una Ivar, View2, y simplemente le asignó a la vista en su método loadView. Eso te permitirá verlo como una variable normal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top