Название: iOS. Приемы программирования
Автор: Вандад Нахавандипур
Издательство: ""Издательство ""Питер""
Жанр: Программирование
Серия: Бестселлеры O’Reilly (Питер)
isbn: 978-5-496-01016-0
isbn:
Рис. 1.62. Такое соотношение сторон картинки нам подходит
1.23. Создание прокручиваемого контента с помощью UIScrollView
Постановка задачи
Имеется контент, который необходимо отобразить на экране, но вся эта информация занимает больше экранного пространства, чем позволяет одновременно отобразить дисплей нашего устройства.
Решение
Воспользуйтесь классом UIScrollView.
Обсуждение
Прокручиваемый вид (Scroll View) – одно из очевидных достоинств, которые и делают операционную систему iOS такой удобной. Подобные виды встречаются практически в любых программах. Мы уже познакомились с приложениями Clock (Часы) и Contacts (Контакты). Вы заметили, что их содержимое можно прокручивать вверх и вниз? Да, в этом и заключается магия, присущая видам, о которых пойдет речь в этом разделе.
В сущности, есть всего одна базовая концепция, которую необходимо усвоить в связи с видами, чье содержимое можно прокручивать, – это размер содержимого. Учитывая размер содержимого, прокручиваемый вид может адаптироваться к размеру контента, который в нем находится. Размер содержимого – это значение типа CGSize, которое указывает высоту и ширину того материала, который наполняет вид с прокручиваемым контентом. Вид с прокручиваемым контентом, как следует из его названия, является подклассом UIView. Поэтому вы можете просто добавлять ваши виды к видам с прокручиваемым контентом, пользуясь методом addSubview:. Правда, нужно убедиться в том, что размер содержимого для прокручиваемого вида задан правильно. В противном случае эта информация прокручиваться не будет.
Найдем для примера большую картинку и загрузим ее в вид с изображением. Я воспользуюсь той самой картинкой, с которой мы работали в разделе 1.22: MacBook Air. Добавлю ее в вид с изображением, который помещу в вид с прокручиваемым контентом. Потом воспользуюсь свойством contentSize прокручиваемого вида, чтобы убедиться в том, что размеры этого материала равны размерам изображения (высоте и ширине). Начнем работу с файла реализации контроллера нашего вида:
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic, strong) UIScrollView *myScrollView;
@property (nonatomic, strong) UIImageView *myImageView;
@end
@implementation ViewController
И поместим вид с изображением внутрь прокручиваемого вида:
– (void)viewDidLoad{
[super viewDidLoad];
UIImage *imageToLoad = [UIImage imageNamed:@"MacBookAir"];
self.myImageView = [[UIImageView alloc] initWithImage: imageToLoad];
self.myScrollView = [[UIScrollView alloc] initWithFrame: self.view.bounds];
[self.myScrollView addSubview: self.myImageView];
self.myScrollView.contentSize = self.myImageView.bounds.size;
[self.view addSubview: self.myScrollView];
}
Если теперь загрузить эту программу в эмуляторе iOS, можно убедиться в том, что изображение прокручивается и по горизонтали, и по вертикали. Основная задача в данном случае – найти картинку, которая будет довольно велика и не поместится в пределах экрана. Так, если взять изображение размером 20 × 20 пикселов, то особой пользы СКАЧАТЬ