I recommend SwiftCharts for this, it is specially designed for such situations. You can add multiple layers to each other and create custom views (subclasses of UIView, which may be an image view or something else) in any of these layers.
In this case, you would add a curve layer and another layer on top of it with your custom overlays.
To create custom overlays, you get the full state of each point in the chart, so, for example, you can decide whether to display the image or not, or adjust the image in accordance with the chart data. See example :

There, warnings (called notifications in the example) are displayed only when the y value is less than 1.
There is also an example with a curved line.

You can use the example of curved lines as a basis and copy-paste the notification layer from the notification example into it and add it to the chart layers. Then configure accordingly.
(Disclosure: I am the author)
Ix
source share