When creating from a NIB, prepareView is called. But when created programmatically, prepareView needs to be called after the size and content is set for the horizontalVableView. There is no currently defined method that does that as far as I can tell. init does it too early. prepareView itself is not a public method.