Ios 确定UIView子类的可见部分(框架),该部分作为子视图添加到表视图中的单元格中
让我们把这个UIView子类称为SomeClass。这个类是静态库的一部分。一些客户将使用此库,并将此SomeClass的实例添加到其(客户)表视图的单元格中 我(SomeClass)需要确定SomeClass何时“进入”屏幕(将变为可见),何时“退出”屏幕(将变为不可见) 我可以使用Ios 确定UIView子类的可见部分(框架),该部分作为子视图添加到表视图中的单元格中,ios,objective-c,xcode,uitableview,uiview,Ios,Objective C,Xcode,Uitableview,Uiview,让我们把这个UIView子类称为SomeClass。这个类是静态库的一部分。一些客户将使用此库,并将此SomeClass的实例添加到其(客户)表视图的单元格中 我(SomeClass)需要确定SomeClass何时“进入”屏幕(将变为可见),何时“退出”屏幕(将变为不可见) 我可以使用didMoveToWindow:方法,然后检查self.window中的nil。但是,有一个问题,SomeClass在事件实际可见之前获取该事件,因为单元格根据表视图概念进行“准备”。我需要确定的是,某些用户可以1
didMoveToWindow:
方法,然后检查self.window
中的nil。但是,有一个问题,SomeClass在事件实际可见之前获取该事件,因为单元格根据表视图概念进行“准备”。我需要确定的是,某些用户可以100%看到它
scrollViewDidScroll:
。假设SomeClass将通过在超级视图上使用迭代获得滚动视图,并将作为委托订阅找到的滚动视图。但他将被某个单元格删除,该单元格将作为滚动视图的代理进行订阅。所以我需要在这里发明一些解决方案。例如,在Android中,可以添加observer,在这种情况下,SomeClass始终是一个侦听器,并且不会覆盖任何其他侦听器。Android中存在多对一关系,不像iOS中的一对一关系didmovetown:
中启用某个计时器,该计时器将检查每个X时间及其帧。当SomeClass离开屏幕时,计时器将被禁用如果如您所说,表视图单元格始终将SomeClass作为子视图,那么使用UITableViewDelegate将更有意义。SomeClass的框架始终与单元格的框架相交,他被添加为子视图。您阅读了我的问题吗?我已经描述了一些关于DidMoveToIndown的内容。在这种情况下,从视图中抽象出逻辑并检查它。当单元格显示时,视图将显示出来——请参见我的编辑。在这个解决方案中,如果某个类订阅为表视图的委托,它将覆盖客户的表视图委托,反之亦然,客户表视图委托始终可以重写SomeClass。如果需要按照单元格显示的内容执行操作,则tableView:willDisplayCell:ForRowatineXpath:是您的逻辑所在。你有没有想过也许你把太多的责任放在某个班级上了?SomeClass是一个视图,它不应该有任何逻辑。你读过这篇文章吗?