На самом деле представление только для преобразования - это представление с слоем CATransformLayer
.
Таким образом, вопрос должен быть How to detect a UIView which has transform-only layer?
, а ответ очень прост, проверьте тип класса view.layer
.
Например, если вы хотите изменить cornerRadius
наstackView.layer
, оно будет через предупреждение типа
изменение свойства cornerRadius в слое, предназначенном только для преобразования, не будет иметь никакого эффекта
Это не потому, что то, что называется transform-only view
это потому, что вы изменяете cornerRadius
для свойства CATransformLayer
и cornerRadius
игнорируется в соответствии с документом Apple для CATransformLayer .
Только подслои преобразованияслой оказываются.Свойства CALayer, отображаемые слоем, игнорируются, включая: backgroundColor, содержимое, свойства стиля рамки, свойства стиля обводки и т. Д.
Возможно, вы ошиблись Возможно выполнение операцийна слое вида, но не на всех.
Как определить, является ли UIView
видом только для преобразования?- Используйте расширение ниже
extension UIView {
func isTransformOnlyView() -> Bool {
return self.layer.isKind(of: CATransformLayer.self)
}
}
Использование
stackView.isTransformOnlyView()