E ' era la stessa cosa con iOS 6.
Suppongo che a volte ci voglia del tempo perché i vincoli si "calmino" e non sia ambiguo. Secondo il video del WWDC 2012 "Best practice per la gestione del layout automatico", l'ambiguità può essere temporaneamente tollerata (diversamente dall'insatisfabilità, che solleva immediatamente un'eccezione).
Se si vuole dimostrare a se stessi che i vincoli non sono rimasti ambiguo, quindi creare un wrapper per [[UIWindow keyWindow] _autolayoutTrace] e chiamare dopo un breve ritardo:
- (void)viewDidAppear:animated
{
[super viewDidAppear:animated];
[self performSelector:@selector(wrapperForLoggingConstraints) withObject:nil afterDelay:.3];
}
- (void)wrapperForLoggingConstraints
{
[[UIWindow keyWindow] _autolayoutTrace];
}
È necessario creare una categoria a UIWindow al fine di arrivare a questo lavoro:
@interface UIWindow()
+ (UIWindow *)keyWindow;
- (NSString *)_autolayoutTrace;
@end
ho messo questa categoria nel proprio file di intestazione, UIWindow_AutoLayoutDebug.h
Dove mai io chiamo [[UIWindow keyWindow] _autolayoutTrace] nella mia app, ho importare UIWindow_AutoLayoutDebug.h
ho imparato di chiamare [[UIWindow keyWindow] _autolayoutTrace] nel codice dal libro "iOS 6 tutorial", Volume 1, da il team di raywenderlich.com. L'idea di ritardare la chiamata è mia.
Desidero utilizzare l'autolayout, ma perché le viste "autoadded" sono già ambigue? –
Basta andare al generatore di interfacce e lasciare che XCode aggiunga i layout suggeriti, permettimi di aggiungere un'acquisizione –
grazie - penso sia ancora strano che le loro opinioni siano ambigue, ma è bello sapere che posso ignorarlo. –