2012-10-02 1 views
1

iCarousel 라이브러리를 사용하여 화면에서 많은 UIView를 스크롤합니다. 각보기가 전체 화면을 채 웁니다.iCarousel 구성 작업

짧은 터치로 하나의보기 만 스크롤하려면 iCarousel을 구성해야합니다.

지금, 나는 또 다른 하나의 화면에서 스크롤하는 그러나

carousel.scrollSpeed = 0.1; 

, 나는 한쪽에서 다른 화면에서 손가락을 슬라이드 할 필요가있다. scrollSpeed 매개 변수를 더 높은 값으로 설정하면 많은 UIView가 스크롤되지만 원터치 당 하나의 UIView 만 스크롤하도록 구성해야합니다.

아무도 도와 줄 수 있습니까? 그들이 앞으로 스 와이프 및 경우 [회전 목마 scrollByNumberOfItems

답변

6

가장 좋은 방법은 [: : 1 애니메이션 YES 회전 목마 scrollByNumberOfItems]를 사용자가 어느 방향으로 스 와이프하면 다음 감지 호출 할 UISwipeGestureRecognizer을 회전 목마 자체에 스크롤을 해제하고 연결하는 것입니다 : -1 animated : YES] 만약 그들이 뒤로 스 와이프하면.

편집 : 뷰가 화면을 채울 경우

사실, 난 당신이 대신 iCarousel 내 SwipeView 라이브러리를 사용하는 더 나은 내기 될 것이라고 생각합니다. SwipeView는 iCarousel과 같은 인터페이스를 가지고 있지만 UIScrollView를 기반으로하므로 페이징을 사용하고 numberOfItemsPerPage를 1로 설정하고 설명하는대로 정확하게 작동하게 할 수 있습니다.

https://github.com/nicklockwood/SwipeView

는 UPDATE :

위의 정보는 구식이다. iCarousel은 이제 pagingEnabled=YES을 설정하여 단일 페이지 넘기기를 지원합니다. 즉, SwipeView는 이것이 당신이하려는 일이라면 여전히 더 적절할 수 있습니다.

1

사실이 코드는 트릭을 수행합니다.

carousel.decelerationRate = 0.3; 
1

가볍게 때 컨베이어가 감속되는 속도. 값이 높을수록 감속이 느려집니다. 기본값은 0.95입니다. 값은 0.0 (회전 장치가 해제 될 때 즉시 멈춤)에서 1.0 (회전 장치가 끝까지 도달하지 않는 한 천천히 회전하지 않고 무기한으로 계속됨)의 1.0 범위에 있어야합니다.

0에서 0.5 사이의 값을 시도해야합니다. 그것은 scrollview와 똑같이 행동하지 않을 것이지만, 당신이 그것을 얻을 수있는 가장 가까운 것입니다. 참조 (https://github.com/nicklockwood/iCarousel/issues/94)

1

이 같은 시도 할 수 있습니다 ---

self.iCarosoul.decelerationRate=0.65; 
self.iCarosoul.scrollSpeed=3; 
self.iCarosoul.stopAtItemBoundary=YES 
self.iCarosoul.scrollToItemBoundary=YES;