Похоже, это имеет отношение к поведению авторазмера, а также маскам авторазмера. В IB отключите «Autoresize Subviews» по отношению к ScrollView.
Также проверьте маску авторазмера: имеет ли это смысл? Играйте с его маской и отстреливайтесь оттуда. Когда вы создаете представления программно, маска автоматического изменения размера по умолчанию может иметь непредвиденное поведение.