Вандад Нахавандипур

iOS. Приемы программирования


Скачать книгу

или последующую фотографию. При одном скольжении вы никогда не прокручиваете последовательность до самого начала или до самого конца. Когда начинается прокручивание и вид обнаруживает следующее изображение, прокрутка останавливается на этом изображении и оно начинает подрагивать на экране. Таким образом, анимация прокрутки прерывается. Это и есть разбивка на страницы. Если вы еще не пробовали ее на практике, настоятельно рекомендую попробовать. Весь дальнейший рассказ останется непонятен, если вы не будете представлять, как выглядит приложение, поддерживающее разбивку на страницы.

      В следующем примере с кодом я использую три изображения: iPhone, iPad и MacBook Air. Каждое из них я поместил в отдельный вид типа image view, а потом добавил эти виды к прокручиваемому виду. Затем включаем разбивку на страницы, задавая для свойства pagingEnabled прокручиваемого вида значение YES:

      – (UIImageView *) newImageViewWithImage:(UIImage *)paramImage

      frame:(CGRect)paramFrame{

      UIImageView *result = [[UIImageView alloc] initWithFrame: paramFrame];

      result.contentMode = UIViewContentModeScaleAspectFit;

      result.image = paramImage;

      return result;

      }

      – (void)viewDidLoad{

      [super viewDidLoad];

      UIImage *iPhone = [UIImage imageNamed:@"iPhone"];

      UIImage *iPad = [UIImage imageNamed:@"iPad"];

      UIImage *macBookAir = [UIImage imageNamed:@"MacBookAir"];

      CGRect scrollViewRect = self.view.bounds;

      self.myScrollView = [[UIScrollView alloc] initWithFrame: scrollViewRect];

      self.myScrollView.pagingEnabled = YES;

      self.myScrollView.contentSize = CGSizeMake(scrollViewRect.size.width *

      3.0f, scrollViewRect.size.height);

      [self.view addSubview: self.myScrollView];

      CGRect imageViewRect = self.view.bounds;

      UIImageView *iPhoneImageView = [self newImageViewWithImage: iPhone

      frame: imageViewRect];

      [self.myScrollView addSubview: iPhoneImageView];

      /* Для перехода на следующую страницу изменяем положение следующего вида с изображением по оси X. */

      imageViewRect.origin.x += imageViewRect.size.width;

      UIImageView *iPadImageView = [self newImageViewWithImage: iPad

      frame: imageViewRect];

      [self.myScrollView addSubview: iPadImageView];

      /* Для перехода на следующую страницу изменяем положение следующего вида с изображением по оси X. */

      imageViewRect.origin.x += imageViewRect.size.width;

      UIImageView *macBookAirImageView =

      [self newImageViewWithImage: macBookAir

      frame: imageViewRect];

      [self.myScrollView addSubview: macBookAirImageView];

      }

      Итак, теперь у нас есть три страницы, содержимое которых можно прокручивать (рис. 1.64).

      Рис. 1.64. Прокрутка содержимого в виде, в котором поддерживается разбивка на страницы

      1.24. Загрузка веб-страниц с помощью UIWebView

      Постановка задачи

      Необходимо динамически загрузить веб-страницу прямо в ваше приложение для iOS.

      Решение

      Воспользуйтесь классом UIWebView.

      Обсуждение

      Веб-вид (Web View) – это окно, которое браузер Safari использует для загрузки в систему iOS информации из Сети. Класс UIWebView позволяет использовать в приложениях для iOS всю мощь Safari. Все, что вам нужно сделать, – поместить веб-вид в вашем пользовательском интерфейсе и применить один из методов загрузки:

      • loadData: MIMEType: textEncodingName: baseURL: – загружает в веб-вид экземпляр класса NSData;

      • loadHTMLString: baseURL: – загружает в веб-вид экземпляр класса NSString.