0

У меня возникли трудности с получением правильного выравнивания элементов в моем расширении Центра уведомлений. Я хотел бы привести элементы в соответствие с применяемыми по умолчанию полями - он должен быть выровнен с первым символом в имени приложения, а правый - с приложенным дополнением. Если вы заметили строки в расширении Календаря, я стараюсь точно сопоставить эти поля (хотя в некоторых случаях они тоже не совсем корректны).Правильно выравнивать элементы в виджетах Центра уведомлений с помощью автоматической компоновки

У меня есть мои элементы, созданные с помощью Auto Layout, все сделано программно. Я установил ведущее значение, равное self.view, ведущему и ведущему к отставанию self.view. Когда я запускаю расширение на разных устройствах, заполнение подкладок является непоследовательным, в то время как трейлинг всегда прозрачен для дальнего края.

Если я изменю его только с Leading и Trailing на LeadingMargin и TrailingMargin, он окажется таким же. Если я изменил его, чтобы выровнять LeadingMargin с ведущим представлением и затянуться с помощью TrailingMargin, то трейлинг кажется желательным, но ведущий слишком сильно сдвинулся вправо на iPhone 6, даже если он идеально подходит для iPad. На iPhone 6 Plus в ландшафте ведущий выравнивается с началом значка приложения, а трейлинг не имеет дополнения, но только иногда! В других случаях он добавляет поля.

Как вы настроите это для правильного выравнивания элементов?

Я не реализовал widgetMarginInsetsForProposedMarginInsets.

//viewDidLoad: 
let label = UILabel() 
label.backgroundColor = UIColor.blueColor() 
label.setTranslatesAutoresizingMaskIntoConstraints(false) 
self.view.addSubview(label) 
self.view.addConstraint(NSLayoutConstraint(item: label, attribute: .Top, relatedBy: .Equal, toItem: self.view, attribute: .Top, multiplier: 1, constant: 0)) 
self.view.addConstraint(NSLayoutConstraint(item: label, attribute: .Bottom, relatedBy: .Equal, toItem: self.view, attribute: .Bottom, multiplier: 1, constant: 0)) 
self.view.addConstraint(NSLayoutConstraint(item: label, attribute: .Leading, relatedBy: .Equal, toItem: self.view, attribute: .Leading, multiplier: 1, constant: 0)) 
self.view.addConstraint(NSLayoutConstraint(item: label, attribute: .Trailing, relatedBy: .Equal, toItem: self.view, attribute: .Trailing, multiplier: 1, constant: 0)) 
let heightConstraint = NSLayoutConstraint(item: label, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .Height, multiplier: 1, constant: 100) 
heightConstraint.priority = 999 
self.view.addConstraint(heightConstraint) 

iPhone 6 Портрет: enter image description here

iPhone 6 Plus Портрет: enter image description here

iPhone 6 Plus Пейзаж: enter image description here

IPad (Портрет/Пейзаж): enter image description here

+0

Можете ли вы распечатать результаты экрана? –

+0

@AshrafTawfeeq Да, см. Новое редактирование – Joey

ответ

0

Похоже, что это проблема, влияющая на iOS 8.2 и ранее, поскольку она ведет себя так, как ожидалось, и является последовательной, если я использую Leading -> Leading and Trailing -> TrailingMargin в iOS 8.3.

 Смежные вопросы

  • Нет связанных вопросов^_^