Pregunta

Estoy tratando de hacer algo muy simple:Creación de una vista desde cero, añadiendo a la del controlador de la vista, y tienen que estirar de borde a borde a su superview, pero me sale la consola de advertencia una vez que la aplicación se ejecuta, diciendo que las restricciones no pueden ser simultáneamente agrega a la vista.

    backView = [UIView new];
    backView.backgroundColor = [UIColor redColor];
    [[self view] insertSubview:backView aboveSubview:tableview];
    [[self view] addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-0-[back]-0-|"
                                                                        options:0
                                                                        metrics:nil
                                                                          views:@{@"back": backView}]];

     [[self view] addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[back]-0-|"
                                                                         options:0
                                                                         metrics:nil
                                                                           views:@{@"back": backView}]];
¿Fue útil?

Solución

Cuando se crea un UIView en el código translates auto-resizing mask to constraints.

es decir,toma el marco que le dio cuando la creó y la auto-cambio de tamaño de la máscara y los convierte en NSLayoutConstraints.

Estos auto-generado restricciones, a continuación, en conflicto con las restricciones que usted está agregando manualmente.

Si estoy en lo correcto, entonces usted será capaz de solucionarlo mediante la adición de la línea de...

backView.translatesAutoresizingMaskIntoConstraints = NO;

justo después de la primera línea y que debería solucionar el problema.

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