UIAppearance 边缘插入

UIAppearance edge insets

我有一个 UIView 子类,我在我的应用程序(并且在第 3 方库中)中使用它来显示 toast 通知。我想为我正在开发的另一个应用程序稍微修改一下,所以我通过 UIAppearance 添加样式属性。我有一些工作,但其中一些无法正常工作!

/// The visible duration of the toast view
@objc public dynamic var visibleDuration: CGFloat = 2.0

/// The margins to apply around the toast view
@objc public dynamic var margins: UIEdgeInsets = .zero

visibleDuration 在这里工作正常,由 ToastView.appearance().visibleDuration = 6 设置,但 margins 永远不会非零!我需要在这里做一些特别的事情来支持通过 UIAppearance 设置 UIEdgeInsets 吗?

事实证明这是正确设置的,但由于我的 class 的性质,我试图使用它们来布置我的视图时它们不可用,因为它们 UIAppearance 值。在更新值以反映它们的 UIAppearance 值之前,似乎需要将视图添加到 window 层次结构!添加到 window 后移动我的布局代码以解决此问题!