У вас нет «полного кадра», если у вас есть панель навигации или панель вкладок. В общем, код, который использует [UIScreen mainScreen]
для информации о макете, вероятно, неверен.
Кроме того, строка состояния может изменить размер, если (например) выполняется вызов или включен модем.
Вместо этого используйте любое нормальное значение для полного кадра и включите автоматическое изменение размера:
CGRect fullFrame = {{0,0}, {320,480}};
...
sv.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin;
РЕДАКТИРОВАТЬ: Вероятно, вам также необходимо создать подкласс UIScrollView и реализовать -setFrame:
, чтобы он также устанавливал размер содержимого и -layoutSubviews
для правильной компоновки.