Ho cercato di ottenere l'effetto di parallasse per una visualizzazione dell'immagine. Il codice per l'effetto di parallasse è semplice e funziona solo se aggiungo UIImage
a UIImageView
. Ho un'immagine modello che deve tessere se stessa su entrambi i lati.Come ottenere l'effetto di parallasse con l'immagine del motivo?
Quindi ho dovuto utilizzare il metodo patternWithImage
di UIColor
. Quando eseguo la parallasse, posso vedere il colore di sfondo dello self.view
nei bordi quando inclino il dispositivo.
Qui si tratta di un codice:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.backgroundImageView.contentMode = UIViewContentModeCenter;
self.backgroundImageView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"connect"]];
[self addParallaxEffectToView:self.backgroundImageView];
}
- (void)addParallaxEffectToView:(UIView *)view
{
// Set vertical effect
UIInterpolatingMotionEffect *verticalMotionEffect =
[[UIInterpolatingMotionEffect alloc]
initWithKeyPath:@"center.y"
type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];
verticalMotionEffect.minimumRelativeValue = @(-50);
verticalMotionEffect.maximumRelativeValue = @(50);
// Set horizontal effect
UIInterpolatingMotionEffect *horizontalMotionEffect =
[[UIInterpolatingMotionEffect alloc]
initWithKeyPath:@"center.x"
type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];
horizontalMotionEffect.minimumRelativeValue = @(-50);
horizontalMotionEffect.maximumRelativeValue = @(50);
// Create group to combine both
UIMotionEffectGroup *group = [UIMotionEffectGroup new];
group.motionEffects = @[horizontalMotionEffect, verticalMotionEffect];
// Add both effects to your view
[view addMotionEffect:group];
}
codice può essere in Swift o di Objective-C. Qualsiasi aiuto sarebbe apprezzato. Grazie
EDIT: Come da @Clafou suggerimento, sto diventando uno sguardo strano quando provo a spingere e animazioni pop.
Avete controllato questo: http://stackoverflow.com/questions/21544402/moving-an-image-with-ios-7-parallax-effect? Non ho provato, quindi non so se risolverà il tuo problema o no. – Mrunal
Sono confuso dalla tua modifica! Cosa intendi con "quando provo a spingere e pop le animazioni"? Saresti in grado di aggiungere una GIF animata per mostrare cosa succede in movimento? – Clafou
Se hai modificato le tue viste per estendersi oltre i limiti della vista radice, penso che potresti voler impostare self.view.clipsToBounds = true in viewDidLoad per non mostrare quelle parti durante le transizioni del controller di visualizzazione. – Stefan