我很难在通知中心扩展中获得正确的元素对齐方式。我想对齐元素以尊重应用的默认边距 - 它应该与应用程序名称中的第一个字符左对齐,并与应用的一些填充右对齐。如果您注意到日历扩展中的线条,我正在尝试完全匹配这些边距(尽管在某些情况下这些边距似乎也不太正确)。
我使用自动布局设置了我的元素,所有这些都以编程方式完成。我已将前导设置为self.view
' 的前导和尾随self.view
' 的尾随。当我在各种设备上运行扩展时,装货填充不一致,而尾随始终清晰到远边缘。
如果我将它从“前导和尾随”更改为“前导边距”和“尾随边距”,它看起来完全一样。如果我将其更改为将元素的Leading 与视图的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 肖像:
iPhone 6 Plus 肖像:
iPhone 6 Plus 横向:
iPad(纵向/横向):