在Xcode 11中,我們無法使用Material來構(gòu)建應(yīng)用。
錯誤信息如下:
*** Assertion failure in -[_UINavigationBarContentView setLayoutMargins:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore_Sim/UIKit-3899.13.13/_UINavigationBarContentView.m:703
在iOS 13上,不允許更改私有視圖的布局邊距。因此,擴(kuò)展框架以消除布局邊距可以作為替代解決方案。
swift語言解決方案:
for view in subviews {
if #available(iOS 13.0, *) {
let margins = view.layoutMargins
var frame = view.frame
frame.origin.x = -margins.left
frame.size.width += (margins.left + margins.right)
view.frame = frame
} else {
view.layoutMargins = .zero
}
}
oc語言解決方案:
if (@available(iOS 13.0, *)) {
UIEdgeInsets margins = view.layoutMargins;
CGRect frame = view.frame;
frame.origin.x = -margins.left;
frame.origin.y = -margins.top;
frame.size.width += (margins.left + margins.right);
frame.size.height += (margins.top + margins.bottom);
view.frame = frame;
}else {
view.layoutMargins = UIEdgeInsetsZero;
}