有没有办法弄清楚View当前是否可见/当前是否显示在屏幕上?这对于内存处理非常方便。此外,有没有办法查看图像当前是否在屏幕上,所以你不需要一直将它放在内存中,特别是如果当前显示的图像很多。
答案 0 :(得分:2)
这实际上取决于您如何更改视图和图像视图的可见性。您可以检查hidden
属性以查看它是否隐藏,或检查alpha
属性是否为0以查看它是否不可见。当你在屏幕上说""听起来您可能会将它们移出窗口的可见边缘,在这种情况下,您可以检查imageView.frame.origin.x
和y
值以查看当前放置的位置。
如果你正在谈论检查是否存在imageView,那就变得更加复杂了。您可以保留一组数据并检查它是否在那里或其他几种方式。
您正在寻找的是其中任何一种吗?如果没有,请考虑编辑您的问题,详细说明您尝试过的内容以及您打算做的事情。
答案 1 :(得分:2)
您将不得不检查所有这些方案。我从来没有见过内置的房产来检查所有这些可能性。只需跟踪您创建,修改和隐藏视图的位置,并在适当的位置将其删除。
检查它是否隐藏:
if (view.hidden)
或检查层次结构:
if (view.superview == nil)
您还可以检查视图的边界以查看它是否在屏幕上。
您还可以检查alpha:
if (view.alpha > 0)
这应该涵盖大多数可能性,否则,请注意。
答案 2 :(得分:0)
这是UITableviewCell
吗?如果是这样,tableview将为您管理。
如果视图中您已通过导航或标签栏操作切断,请参阅viewDidDisappear:
如果它在当前视图中,但已移出屏幕,请在图像视图上调用convertRect:toView:
并传入主视图,然后检查生成的矩形是否在主视图的边界内视图。移动图像视图后执行此操作。
答案 3 :(得分:0)
您可以执行此操作,假设 <package id="MySql.Data" version="6.9.9" targetFramework="net452" />
<package id="MySql.Data.Entity" version="6.9.9" targetFramework="net452" />
<package id="MySql.Web" version="6.9.9" targetFramework="net452" />
是您要检查其当前是否在屏幕上的视图。
myCustomView