Ho una sottoclasse di UIView che deve calcolare la sua altezza in base alla sua larghezza. Quando viene creato nel codice, tutto funziona. Tuttavia, quando provo a creare la vista in Interface Builder e sebbene eseguo l'override di tutti i metodi correlati, non riesco a ottenere la dimensione della vista impostata nel builder dell'interfaccia.Caricamento di una sottoclasse UIView da problemi di dimensione NIB
Quindi la mia prossima ipotesi è stata forse la superview del mio punto di vista è impostare il frame della mia vista dopo awakeFromNib. Bene, risulta che non lo fa. Ho sovrascritto setFrame sulla mia vista, e viene chiamato durante initWithCoder.
Quindi questo è quello che so finora:
- Prima initWithCoder si chiama
- Durante initWithCoder una chiamata a SETFRAME: (CGRect) Aframe viene inviato
- nel SETFRAME la dimensione del telaio è corretta, e che io chiamo [super SETFRAME: Aframe]
- awakeFromNib si chiama
- super.frame.size.width = 0 in awakeFromNib self.frame.size.width è anche 0
- Quando il processo è terminato, sembra che la vista sia qualche pixel sotto dove si suppone di essere, ma immagino che il mio codice diventi così ingombrante con le dimensioni che potrebbe essere qualcosa che faccio.
Qualsiasi aiuto sarà apprezzato
La questione è in realtà tutto sbagliato, ormai. Ho postato personalmente una risposta che è stata cancellata per qualche motivo. Il mio errore principale era usare% d per stampare le dimensioni del fotogramma quando è un float. Questo mi ha completamente buttato fuori. La tua risposta in realtà non sta facendo nulla per quanto posso vedere che non l'ho fatto. –