2015-02-23 9 views
7

Ho una vista tabella con celle personalizzate che contiene più viste impilate una sull'altra e una di esse viene istanziata utilizzando un file XIB. In quel file XIB, ho un UIImage e due UILabels che ho incapsulato in un UIView. Ho già capito che questa è la fonte della mia eccezione, ma non capisco perché. Se imposto vincoli hard-coded (anziché relativi) sulle etichette, ad es. Larghezza e altezza fisse funziona.[Lunghezza etichetta U]: selettore non riconosciuto inviato a istanza dopo l'utilizzo di AutoLayout

Allego una schermata di stampa che mostra i vincoli. Si noti che nella maggior parte dei vincoli la costante = 0 altrimenti è indicata tra parentesi sul contorno del documento. Inoltre, l'altezza dell'etichetta è pari a 0,5 dell'altezza del contenitore.

Qualche indizio sul perché si blocca?

risposta

16

Ho appena incontrato e risolto questo problema per me. Avevamo un UILabel in un UIView e l'uscita di UILabel si chiamava title. Quando abbiamo chiesto alla nostra cella di 'layoutIfNeeded', abbiamo ottenuto l'eccezione UILabel length. Il metodo - viewForBaselineLayout su UIView menziona la parola titolo.

Abbiamo cambiato la presa così è stato chiamato "cellTitle" (tutto tranne il "titolo") e questo incidente va via.

Puoi provare a cambiare il nome del tuo outlet?

+0

Grazie! Mi hai risparmiato ore di debugging :) – Salah

+0

ottima cattura e hai salvato le mie ore e le cellule del cervello! grazie mille! –

+0

Succede solo nella versione iOS8. –

0

assicurarsi di utilizzare una tabella statica. Se quindi rimuovi i metodi come heightForFooterRow

assicurati di eseguire l'autoapprendimento, resettare tutto e creare l'app.