UIStackView是仅转换视图。这意味着无法在视图的层上执行操作。
是否有一种通用的方法来检测aUIView是否为仅转换视图?

最佳答案

实际上,transform-only视图是具有CATransformLayer层的视图。
所以问题应该是How to detect a UIView which has transform-only layer?,答案很简单,检查类的类型view.layer
例如,当您想在cornerRadius上更改stackView.layer时,它将通过如下警告
在仅变换层中更改属性cornerRadius,将不起作用
这不是因为称为transform-only view的东西,而是因为您在cornerRadius上更改了CATransformLayer,并且根据Apple document for CATransformLayer忽略了cornerRadius属性。
仅渲染变换层的子层。忽略由层渲染的CALayer属性,包括:背景颜色、内容、边框样式属性、笔划样式属性等。
你可能错了,在视图的层上执行操作是可能的,但不是所有的操作。
如何检测aUIView是否为仅转换视图?-使用下面的扩展名

extension UIView {
  func isTransformOnlyView() -> Bool {
    return self.layer.isKind(of: CATransformLayer.self)
  }
}

用法
stackView.isTransformOnlyView()

关于ios - 如何检测仅转换的UIView?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50732406/

10-10 08:14