Subviews are always displayed on top of their superviews, so if you're overriding the drawRect method of the main view, the behavior you're seeing is expected.
If you mean that you're overriding the drawRect method of the UIImageView itself, that won't work because UIImageView doesn't call drawRect on its subclasses (as discussed in the
documentation under "Special considerations").
If you want to draw on top of the image view, you'll need to add another UIView on top of it and do your drawing on that view. You'll need to make its background color clear ([UIColor clearColor]), and set its opaque property to NO so that the background shows through properly.