I have a scrollview that has 150+ UIView subclasses in it and is very laggy to scroll

Each view is 40 x 40 and handle their own touch events. Im thinking the issue might be in how the views are loaded? Is there a way to load them only when nessecary? Right now i do so all up front when the user opens the page.
if you need to see code i can supply some
thanks