Como detectar quando um a uiview mudou de tamanho?
-
23-09-2019 - |
Pergunta
Eu tenho um UIViewController
que é inicializada com um frame correto, no entanto, em algum lugar no meu código da moldura fica desconfigurado e eu estou tendo dificuldade em descobrir onde.
Em situações como esta é geralmente útil para watch
uma variável no depurador, no entanto eu não tenho nenhuma maneira de acessar o controlador->view->quadro propriedade na minha variável de vista, pois não é uma variável, é uma propriedade que (surpreendentemente)
A perfuração no a uiview nas variáveis visor mostra algumas coisas, mas nada que eu possa relacionar-se para o quadro, eu pensei, talvez, que seria no layer
mas não é.
Existe alguma maneira de observar as alterações em uma API privada?Eu acho que não, pois as variáveis são, essencialmente, 'escondido' e então, você não pode especificar exatamente o que watch
.
Como alternativa, de que outra forma eu poderia usar?Eu já tentei subclassificação a uiview, a configuração de meu UIViewController vista para apontar para esta subclasse e de ruptura com o setFrame método, mas ele não parece funcionar.
EDITAR:a subclassificação a uiview método de trabalhar, eu tinha que definir o modo de exibição para apontar para o meu teste na subclasse viewDidLoad
e não o init
o método.Deixando essa questão em aberto, como eu não tenho certeza se essa é a melhor forma de abordar esse tipo de problema...
Solução 2
Eu descobri isso pode ser feito usando o valor de chave de observadores.
Outras dicas
Subclasse seu o modo de exibição que você deseja acompanhar e reescrever o setFrame método:
@implementation MyTableView
- (void)setFrame:(CGRect)frame;
{
NSLog(@"%@", frame);
[super setFrame:frame];
}
@end
Em seguida, usar o depurador para adicionar um ponto de interrupção para ele e verificar quando ele é chamado.Eventualmente, você vai ver quando o quadro é alterado e onde é que a mudança vem.
Você poderia criar um ivar, view2, e atribuiu-lo para o modo de exibição em seu loadView
o método.Que deve permitir a vê-lo como uma variável normal.