2010-06-10 3 views
4

Я делаю цифровой комикс сейчас. Мое приложение имеет горизонтальный пейджинг, когда без масштабирования. Но при масштабировании высота изображения превышает высоту экрана. Таким образом, приложение имеет вертикальный пейджинг.Как сделать горизонтальный пейджинг без вертикального пейджинга в UIScrollView

Но мне не нужен вертикальный пейджинг. Я хочу сделать горизонтальный пейджинг без вертикального пейджинга во время zooiming.

Пожалуйста, научите меня.

+0

Может быть сделано с точки зрения один свиток: http://stackoverflow.com/questions/10478586/uiscrollview-paging-in-single-direction/10480071#10480071 –

ответ

-1

Технически нет такой вещи, как вертикальный пейджинг, только горизонтальный, как сейчас, для стандартного API. Вверх/вниз - прокрутка, а поиск влево/вправо немного отличается.

Вы должны иметь возможность отключить вертикальную прокрутку в Interface Builder после выбора uiscrollview и редактирования его свойств в окне инспектора.

-1

Вы можете динамически установить pagingEnabled на NO, когда пользователь увеличит масштаб изображения, а затем вернет его обратно к YES, когда они уменьшают масштаб.

Обратите внимание на docs за UIScrollViewDelegate, чтобы узнать, как определить масштабирование.

+0

Спасибо. Но этого недостаточно, потому что мне нужно горизонтальное пейджинг во время масштабирования. Я хочу только отключить поисковый вызов по вертикали. Но я знал, что не могу отключить вертикальный просмотр страниц. Так кто-то подскажет мне совет. Он сказал, что способен отключить вертикальный пейджинг, используя 2 scrollView. Один из целых страниц с pagingEnabled = NO; Еще одна страница - только одна страница с pagingEnabled = YES; Но мой образец работает неправильно. Кто-нибудь, пожалуйста, помогите мне. – kyoheialfaromeo2010

13

Это действительно просто. Как предложил ваш друг, вам понадобится ПОСЛЕДНИЕ два UIScrollView. Вам понадобится один UIScrollView для горизонтальной (например, подкачки), и вам понадобится один UIScrollView для на странице. Ключевые точки (назовем их scrollHorizontal и scrollVertical):

  • scrollHorizontal.frame.height должна равняться scrollHorizontal.contentSize.height (в противном случае, вы будете в конечном итоге с вертикальной пейджинга)
  • scrollVertical: во-первых, вы будете иметь один из этого для каждой страницы , Ширина рамки и contentSize.width должны соответствовать и иметь смысл w.r.t. ширину страницы (в вашем scrollHorizontal). Разумеется, вы должны иметь высоту кадра не более scrollHorizontal.contentSize.height.

Пример кода:

 

UIScrollView scrollHorizontal = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; 

scrollHorizontal.pagingEnabled = YES; 
scrollHorizontal.directionalLockEnabled = YES; // not needed but helpful 

// Now let's create each page 

UIScrollView *scrollPage1 = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; 

[scrollPage1 addSubview:theContentViewForPage1]; 

scrollPage1.contentSize = CGSizeMake(self.view.bounds.size.width, theContentViewForPage1.bounds.size.height); 

// Add page to scrollHorizontal 

[scrollHorizontal addSubview:scrollPage1]; 
[scrollPage1 release]; 

//...add more pages (REMEMBER to set the scroll view's frame.origin.x accordingly for each additional page) 

// Set the scrollHoriztonal content size 
scrollView.contentSize = CGSizeMake(self.view.bounds.size.width*NUMBER_OF_PAGES, self.view.bounds.size.height); 

// Now add the scrollview to self.view; or even self.view = scrollHorizontal, etc. 

+1

Идеальный ответ человек. Огромное спасибо. – jakeboxer

+0

Я пытался выяснить что-то подобное, и этот ответ вполне выполнил это. огромное спасибо – Andrew

Смежные вопросы