转换后获取帧值的最佳方法?

Posted

技术标签:

【中文标题】转换后获取帧值的最佳方法?【英文标题】:Best way to obtain frame value after transform? 【发布时间】:2011-10-30 04:41:50 【问题描述】:

我有一个附加了 pinchgesturerecognizer 的 imageview。在 pinchgesturerecognizer 委托方法中,我需要在转换发生之前计算转换的帧值,以便查看缩放是否将 imageview 推到了窗口的边界之外。我知道我每次都需要使用 CGRectApplyAffineTransform 来计算帧值,但是由于执行第一次转换后 imageview 帧值将无效,我现在是否需要将更新帧值存储在实例变量中并每次都更新它发生转换,或者有什么方法可以从图像视图本身获得这个值?

【问题讨论】:

【参考方案1】:

所以您想检查UIImageView 是否在其窗口内?

我认为您可以忽略视图框架而开始计算 从视图边界。这将包括您已应用于视图的转换。

Apple 在 View Programming Guide for ios 中有一个名为 Frame、Bounds 和 Center 属性的关系 的部分。

CGRect imageViewBounds = imageView.bounds;
CGRect imageViewBoundsInWindow = [imageView convertRect:imageViewBounds
                                                 toView:nil];
CGRect windowBounds = imageView.window.bounds;
if ( CGRectIntersectsRect( windowBounds, imageViewBoundsInWindow ) ) 
     // imageView is visible in its window

【讨论】:

以上是关于转换后获取帧值的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章

在春季获取、转换和更新数据的最佳方法是啥?

提取PDF文档图片的最佳方式 没有之一

使用堆栈视图时帧值不正确

Python - 当行索引和列都是类别时数据帧值的散点图

将 MDB 转换为 MySQL 的最佳方法 [关闭]

将 PDF 对转换为单页的最佳方法是啥?