Как прокрутить содержимое без прокрутки изображения в фоновом режиме с помощью UIScrollView? - PullRequest
4 голосов
/ 18 мая 2010

Я пытаюсь прокрутить содержимое без прокрутки изображения в фоновом режиме, используя UIScrollView.

Я использую IB и настраиваю представление FileOwner так, чтобы оно указывало на представление прокрутки (представление изображения является дочерним видом представления прокрутки). Я сделал высоту изображения 960 пикселей.

Я также установил размер прокручиваемого контента в vierController, которому принадлежит этот UIView

  • (void) viewDidLoad { UIScrollView * tempScrollView = (UIScrollView *) self.view; tempScrollView.contentSize = CGSizeMake (320, 960); }

Моя проблема в том, что изображение появляется только вместе с содержимым.

Я попытался удалить настройки в viewDidLoad, но прокрутка перестала функционировать.

Я также попытался изменить местоположение изображения и поместить его в VIEW вместо Scoll View (кстати, Scroll View является дочерним элементом VIEW), но это привело к разрыву приложения (ошибка завершения).

Любой совет будет оценен.

Ответы [ 3 ]

9 голосов
/ 18 мая 2010

Самый простой (и правильный способ) - установить фоновое изображение для вашего UIScrollView

UIImage *img = [UIImage imageNamed:@"image.png"];
[scrollView setBackgroundColor:[UIColor colorWithPatternImage:img]];
4 голосов
/ 02 августа 2012

Самый простой способ - установить UIImageView за UIScrollView (UIImageView и UIScrollView под UIView) и сделать фоновый цвет UIScrollView таким же чистым, как упомянуто Джансоном. Таким образом, вы можете прокручивать содержимое, не прокручивая изображение в фоновом режиме, используя UIScrollView.

1 голос
/ 31 августа 2010

Спасибо.Это было чрезвычайно полезно.

Единственное, что я хотел бы добавить (простите, если это очевидно, но для людей, плохо знакомых с платформой (т.е. меня), потребовалось немного поиграться).

Я поместил код из примера "unset" после того, как я установил contentSize = CGSizeMake в viewDidLoad UIViewController, то есть:

// Setup the Scroll View
UIScrollView *tempScrollView=(UIScrollView *)self.view;
tempScrollView.contentSize=CGSizeMake(320, 720);

// Set Stationary Background, so that while the user scroll the background is
// fixed.
UIImage *img = [UIImage imageNamed:@"bg-body.jpg"];
[tempScrollView setBackgroundColor:[UIColor colorWithPatternImage:img]];

Затем я вошел в ViewController .xibфайл и в UIView, который находится внутри UIScrollView, я установил цвет фона на «Очистить цвет».

Я уверен, что есть способ сделать это через код в то же время, что и установка фонаUIScrollView, но, по крайней мере, именно так вы можете сделать это через IB.

Джейсон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...