我有一个显示连接图节点的应用程序。当用户触摸一个节点时,我通过在节点后面显示一个 clearColor“连接”视图来突出显示到相邻节点的路径,该视图的大小可以包含感兴趣的节点。此视图包含每个路径的子视图,并且每个路径视图都有一个 drawRect 方法,该方法绘制一条出现在源节点和每个相邻节点后面的线。一切都很好,这种方法打开了在未来用路径做有趣事情的潜力。
但是,我最近添加了代码来检测外部显示器,其想法是主显示器将是滚动视图内的放大视图,而外部显示器将显示所有节点的全局视图。在我将连接视图添加到外部显示器以显示通过触摸主显示器选择的内容之前,它工作正常。据我所知,我的路径视图(以及它们的父视图和祖父视图)是相同的,在调用 setNeedsDisplay 之后,它们的 drawRect 方法永远不会被调用,它们的主视图表亲也是如此。它们都在相同的位置以相同的方式初始化。
我已经尝试了几十(几百?)的事情来隔离问题,但还没有找出问题所在。如果我将通用 UIView 添加到连接视图,它会出现在两个地方,但是我的路径视图(通过添加 drawRect 来扩展 UIView)只会在我的主显示器上调用,而不会在我的外部显示器上调用。
我已经没有想法了。有没有人对问题的原因有任何想法?