When your @IBDesignable is either too complex or requires data not available when previewing in the interface builder, here is how you deal with those errors.
In situation where our @IBDesignable is too complex to complete in under 200ms we need a way to still get it's benefits without the complex errors that it throws. You may argue that "well my code still builds just fine". Sure, but now you have a bunch of errors and when you actually get one, you may have trouble debugging. Here . . .
UIScrollView is something that can be very confusing because it uses constraints in a way that they aren't normally used. Because of this there is so much confusion.
Implementing a UIScrollView is actually really easy when you know/do three fundamental things. There is a video I uploaded that walks you through this process UIScrollView Video but incase you forget you can use the following as a reference.
Use a View (let's call it, ContentView) in your ScrollView to keep the layout of . . .