如何检查特定UIView的转换是通过CGAffineTransformIdentity设置还是物理移动?
场景:
我可以通过改变它的框架或通过转换来定位UIView。一旦UIView通过变换或改变帧定位......我希望通过不同的按钮将其恢复到原始布局。
观察:
1)如果我已经更改了 UIView的帧,我可以通过原始帧值将其还原。
2)如果我已经转换了 UIView,我可以通过 CGAffineTransformIdentity 将其还原。
那么......我怎么能以编程方式知道差异呢?
我通过测试变换来假设。究竟怎么样?
附:这纯粹是为了启发。
var transform = CGAffineTransformIdentity
if origFrame != containerView.frame {
// TODO: Need to determine if reset transform CGAffineTransformIdentity vs moving containerView.
print("1b) Reset Layout")
} else {
print("1a) Animate Transform.")
transform = CGAffineTransformScale(transform, 0.25, 0.25)
transform = CGAffineTransformTranslate(transform, -400, -600)
}
UIView.animateWithDuration(1.0, animations: {
self.containerView.transform = transform
})