【发布时间】:2012-06-03 17:39:00
【问题描述】:
我有一个名为 draggableImageView 的 UIImageView,它是名为 tiltedView 的 UIView 的子视图,它通过 CATransform3DRotate 向后倾斜,透视图 transform.m34 = -1 / 400.0。这样,当我拖动 draggableImageView 时,它的视角和绝对大小会发生变化,因此它似乎在 tiltedView 内的 2 空间中移动。
我想在tiltedView 中计算draggableImageView 的框架,但使用不同的坐标系(在这种情况下,一个名为viewForCoordinates 的UIView 没有倾斜并包含整个屏幕)。但是,在draggableImageView 中使用[self convertRect:self.frame toView:self.viewForCoordinates] 会输出相同大小的帧,而不管tiltedView 我的draggableImageView 位于何处。
我认为使用self.frame 比self.bounds 更合适,因为bounds 与superview 无关,而frame 依赖于它。但是,基于上述情况,我猜测convertRect 只是将self.frame 转换为与应用于self.frame 的超级视图的透视操作无关。
我不确定什么代码在这种情况下会有帮助,所以请告诉我我可以提供什么代码来帮助回答这个问题。
【问题讨论】:
标签: objective-c transform frame subview bounds