Я использую автозапуск в UICollectionViewCell. Супер простая компоновка: только UILabel. Я хочу, чтобы UILabel занимал всю ширину минус 20 пикселей вставки и центрировался в ячейке как по вертикали, так и по горизонтали. Я установил ограничения, которые делают именно это. Если я запускаю его на любом устройстве iOS 8 или симуляторе, он отлично работает. Однако, когда я запускаю его на некоторых устройствах ios 7, ограничения не влияют. Я пробовал просматривать документы Apple, но ни одна из их изменений, похоже, не связана с автомаршрутом.AutoLayout работает в ios 8, но не в ios 7?
Вот исходный XML-код, хотя я сомневаюсь, что это много значит:
<constraints>
<constraint firstItem="OIc-cg-9hO" firstAttribute="leading" secondItem="Ga6-nx-lOn" secondAttribute="leading" constant="20" id="A7U-sd-fcL"/>
<constraint firstAttribute="centerY" secondItem="OIc-cg-9hO" secondAttribute="centerY" id="G9e-9W-aDS"/>
<constraint firstAttribute="centerX" secondItem="OIc-cg-9hO" secondAttribute="centerX" id="TrB-hI-7Kw"/>
<constraint firstAttribute="trailing" secondItem="OIc-cg-9hO" secondAttribute="trailing" constant="20" id="yjH-nf-D9U"/>
</constraints>
Более обходной путь, чем ответ: но я добавил ограничения в коде следующим образом:
[self addConstraint:[NSLayoutConstraint constraintWithItem:self.cellName
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeWidth
multiplier:1.0
constant:-20.0]];
[self addConstraint:[NSLayoutConstraint constraintWithItem:self.cellName
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0.0]];
[self addConstraint:[NSLayoutConstraint constraintWithItem:self.cellName
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeCenterY
multiplier:1.0
constant:0.0]];
Для того, для его работы мне нужны как закодированные ограничения, так и ограничения IB. Не знаю почему!
Какой результат вы получаете в прошивкой 7? Я не вижу ничего в тех ограничениях, которые не должны работать в iOS 7. – rdelmar
UILabel имеет точную высоту и ширину xib – user3534641
У меня такая же настройка и проблема. Какие-нибудь решения? – Ravi