Estoy usando restricciones de diseño automático mediante programación para diseñar mis celdas UITableView personalizadas y estoy definiendo correctamente los tamaños de celda en tableView:heightForRowAtIndexPath:
Funciona bien en iOS6 y también se ve bien en iOS7
PERO cuando ejecuto la aplicación en iOS7, este es el tipo de mensaje que veo en la consola:
Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2013-10-02 09:56:44.847 Vente-Exclusive[76306:a0b] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0xac4c5f0 V:|-(15)-[UIImageView:0xac47f50] (Names: '|':UITableViewCellContentView:0xd93e850 )>",
"<NSLayoutConstraint:0xac43620 V:[UIImageView:0xac47f50(62)]>",
"<NSLayoutConstraint:0xac43650 V:[UIImageView:0xac47f50]-(>=0)-[UIView:0xac4d0f0]>",
"<NSLayoutConstraint:0xac43680 V:[UIView:0xac4d0f0(1)]>",
"<NSLayoutConstraint:0xac436b0 V:[UIView:0xac4d0f0]-(0)-| (Names: '|':UITableViewCellContentView:0xd93e850 )>",
"<NSAutoresizingMaskLayoutConstraint:0xac6b120 h=--& v=--& V:[UITableViewCellContentView:0xd93e850(44)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xac43650 V:[UIImageView:0xac47f50]-(>=0)-[UIView:0xac4d0f0]>
Y, de hecho, hay una de las restricciones en esa lista que no quiero:
"<NSAutoresizingMaskLayoutConstraint:0xac6b120 h=--& v=--& V:[UITableViewCellContentView:0xd93e850(44)]>"
y no puedo establecer la translatesAutoresizingMaskIntoConstraints
propiedad del contentView
en NO => estropearía toda la celda.
44 es la altura de celda predeterminada, pero definí mis alturas personalizadas en el delegado de vista de tabla, entonces, ¿por qué la celda contentView tiene esta restricción? Que podria causar esto?
En iOS6 no está sucediendo y todo se ve bien tanto en iOS6 como en iOS7.
Mi código es bastante grande, por lo que no lo publicaré aquí, pero no dude en solicitar un pastebin si lo necesita.
Para especificar cómo lo estoy haciendo, en la inicialización de la celda:
- Creo todas mis etiquetas, botones, etc.
- Configuré su
translatesAutoresizingMaskIntoConstraints
propiedad en NO - Los agrego como subvistas
contentView
de la celda. - Añado las restricciones en el
contentView
También estoy profundamente interesado en comprender por qué esto sucede solo en iOS7.