3

ICarousel を使用して電子アルバムを作成しています。アルバムをスライドすると、ICarousel のデフォルト設定では、ある程度の距離まで移動します。私が必要としているのは、1 つの画像に対して 1 回だけスライドすることです。ICarousel は ScrollView に基づいていないことがわかりました。そのため、目的を達成する方法がわかりません。それについて知っている人はいますか?

4

5 に答える 5

5

ネイティブ スクロールをオフにして、scrollByNumberofItemsメソッドを利用する PanGestureRecognizer をアタッチすることをお勧めします。

[iCarousel setScrollEnabled:NO];

次に、gestureRecognizer 内で次のようにします。

[iCarousel scrollByNumberOfItems:1 duration:0.25];

私はこれを自分で試しましたが、うまくいきました。

于 2012-05-17T18:49:31.053 に答える
0

同じ作者によって実装された SwipeView という別のライブラリを使用する必要があるようです。

問題はここで見つかりました。 https://github.com/nicklockwood/iCarousel/issues/247

于 2012-12-04T13:50:49.837 に答える
0

タイプ iCarouselTypeCoverFlow については、次のように設定して実現しました。

//In ViewController.m
self.carousel.pagingEnabled = YES;


//In iCarousel.m change for smooth animation
-(void)scrollByOffset:(CGFloat)offset duration:(NSTimeInterbal)duration{
    if (duration > 0.0)
    {
        _decelerating = NO;
        _scrolling = YES;
        _startTime = CACurrentMediaTime();
        _startOffset = _scrollOffset;
//        _scrollDuration = duration;
// set constant duration instead
        _scrollDuration = 1.0;
        _endOffset = _startOffset + offset;
        if (!_wrapEnabled)
        {
            _endOffset = [self clampedOffset:_endOffset];
        }
        [_delegate carouselWillBeginScrollingAnimation:self];
        [self startAnimation];
    }
    else
    {
        self.scrollOffset += offset;
    }
}
于 2016-09-09T13:50:48.620 に答える
0

iCarousel ソース コード iCarousel.m ファイルを変更すると、これが可能になります。

- (void)didPan:(UIPanGestureRecognizer *)panGesture {

 ......

     case UIGestureRecognizerStateChanged: {
            CGFloat translation = _vertical? [panGesture translationInView:self].y: [panGesture translationInView:self].x;

            translation = translation * 0.35; // Add This line to change the really translation.

            ......
     }
}

それは私の問題を解決します,お役に立てれば幸いです!</p>

于 2017-07-03T06:58:39.863 に答える