Diseño automático de iOS: establece el espacio posterior igual al ancho de la vista de supervisión

Necesito ubicar una vista justo fuera del límite derecho de su vista de supervisión usando el layout automático.

Estoy intentando hacer esto especificando la siguiente NSLayoutConstraint:

NSLayoutConstraint *leftConstraint = [NSLayoutConstraint constraintWithItem:self.downloadView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0.0]; 

Donde self.downloadView contiene es una subvención de self.contentView. Al hacerlo, iOS se queja con la siguiente exception:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: Invalid pairing of layout attributes' 

Alguien puede explicar por qué no puedo vincular estos dos attributes y ¿cómo puedo lograr mi objective?

Sí, no puede establecer que el atributo principal esté relacionado con el atributo de ancho de contentView . Pero podría, por ejemplo, establecer que el atributo principal de downloadView sea ​​relativo al atributo final de su superview , the contentView :

 NSLayoutConstraint *leftConstraint = [NSLayoutConstraint constraintWithItem:self.downloadView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeTrailing multiplier:1.0 constant:0.0]; 

O puede definir que el atributo principal de downloadView sea ​​relativo al atributo principal de contentView , pero luego establezca la constant como cierto valor, como el ancho de la vista. El problema con esa técnica, sin embargo, que en la orientación cambia, la constant ya no sería apropiada y es posible que tenga que ajustarlo.