iCarouselに画像を設定しました。カルーセルをスクロールすると、前後に画像が表示されます。後ろに画像を表示したくない。助けてください。ありがとうございました。
6 に答える
デリゲートを実装する必要があります。
- (CGFloat)carousel:(iCarousel *)_carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value{
switch (option)
{
case iCarouselOptionVisibleItems:
{
return numberOfItemsIntheFront;
}
}
}
カスタムカルーセルタイプに変更し、デリゲートにiCarouselTypeRotaryの実装をコピーする必要があります。-carousel:itemAlphaForOffset:
次に、背面のアイテムのアルファがゼロになるように実装します。
最新バージョンのiCarouselでは、これを行う最も簡単な方法は、カルーセルアイテムビューでview.layer.doubleSided = NOを設定するか、次のようにiCarouselOptionShowBackfacesプロパティを使用することです。
- (CGFloat)carousel:(iCarousel *)_carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value
{
switch (option)
{
case iCarouselOptionShowBackfaces:
{
return NO;
}
default:
{
return value;
}
}
}
以下のコードは、後ろに行くアイテムをうまくフェードアウトします。楽しみ。
func carousel(carousel: iCarousel, valueForOption option: iCarouselOption, withDefault value: CGFloat) -> CGFloat
{
if (option == .Spacing)
{
return value * 1.1
}
else if (option == .FadeMin)
{
return 0;
}
else if (option == .FadeMax)
{
return 0;
}
else if (option == .FadeRange)
{
return 3;
}
return value
}
@NickLockwoodによって提案された解決策を試しましたが、機能しないようです:-(viewForItemAtIndexとplaceholderViewAtIndexの両方のメソッドに追加しました。画像サイズは115* 115ピクセル、キャンバスサイズは146 * 146ピクセルです。ただし、 iCarouselOptionSpacing(メソッドvalueForOption内)の下の'return value * 0.82f;'の戻り値は、私のためにトリックを行いました。
背景画像を非表示にする最も簡単な方法
func carousel(_ carousel: iCarousel, valueFor option: iCarouselOption, withDefault value: CGFloat) -> CGFloat {
switch option {
case .spacing:
return 1.05
case .visibleItems:
return 3
default:
return value