Nascondo le immagini nella vista icarouseltyperotary per icarousel
Domanda
Ho impostato immagini in icarousel. Quando scorro la giostra, mostra le immagini davanti e dietro. Non voglio visualizzare immagini sul retro. Per favore aiuto. Grazie.
Soluzione
Dovrai passare a un tipo di carosello personalizzato e copiare l'implementazione di icarouseltyperotary nel tuo delegato. Quindi implementa -carousel:itemAlphaForOffset:
in modo che gli oggetti dietro la schiena abbiano un alfa di zero.
Altri suggerimenti
Dovresti implementare il delegato:
- (CGFloat)carousel:(iCarousel *)_carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value{
switch (option)
{
case iCarouselOptionVisibleItems:
{
return numberOfItemsIntheFront;
}
}
}
Nell'ultima versione di Icarousel, il modo più semplice per farlo è impostare View.layer.Doublesided = no sulle viste degli articoli con carosello o utilizzare la proprietà IcarouseloptionshowbackFaces, come questa:
- (CGFloat)carousel:(iCarousel *)_carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value
{
switch (option)
{
case iCarouselOptionShowBackfaces:
{
return NO;
}
default:
{
return value;
}
}
}
Il codice qui sotto svanirà gli elementi che stanno andando sul retro. Divertiti.
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
}
Ho provato la soluzione suggerita da @nicklockwood ma non sembra funzionare :-( L'ho aggiunta a entrambi i metodi in ViewForIteMatindex e PlaceholderviewAtIndex. La mia dimensione dell'immagine è di 115*115 pixel e la dimensione della tela è 146*146 pixel. Tuttavia, impostazione a Valore di restituzione di 'Valore di ritorno * 0,82f;' Ai sensi della pala icarouseloptions (all'interno del metodo ValuePoption) ha fatto il trucco per me.