Quello che sta praticamente succedendo qui è che sto aggiungendo una vista personalizzata a UIBarButtonItem, e ho bisogno di ruotarlo di 45deg, la rotazione funziona perfettamente se ruotata di 90deg o 180, ma quando è meno di 90 l'oggetto si deforma e su 45 gradi l'oggetto scompare. Ecco i frammenti per il pulsante e l'animazione.iOS UIImageView scompare dopo la rotazione M_PI_4
UIImageView * menuImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"plus.png"]];
menuButton = [[UIBarButtonItem alloc] initWithCustomView:menuImage];
UITapGestureRecognizer * tap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleMenuView:)];
[menuImage addGestureRecognizer:tap1];
[menuImage setUserInteractionEnabled:YES];
[menuImage.layer setShadowColor:[UIColor blackColor].CGColor];
[menuImage.layer setShadowOffset:CGSizeMake(ShadowSizeWidth, ShadowSizeHeight)];
[menuImage.layer setShadowOpacity:ShadowOpacity];
[menuImage.layer setShadowRadius:ShadowRadius];
[self.navigationItem setRightBarButtonItem:menuButton];
la rotazione:
[UIView animateWithDuration:animationRotateButtonDuration delay:0.0f options:UIViewAnimationCurveLinear animations:^{
CGAffineTransform myTransform = CGAffineTransformMakeRotation(-M_PI_4);
UIBarButtonItem * currentItem = menuButton;
currentItem.customView.transform = myTransform;
}completion:^(BOOL finished){
}];
Sto anche provando a ruotare la vista personalizzata di un pulsante della barra e ad eseguire la stessa cosa. Altre viste ruotano di M_PI_4 bene, quindi mi chiedo se abbia qualcosa a che fare con UIBarButtonItem (?). –
UIBarButtonItem prende una vista personalizzata come sfondo, ora il trucco che ha funzionato, è che la vista personalizzata che ho scelto era una UIImageView che aveva un altro UIImageView da bambino, ho dovuto ruotare questo secondo UIImageView per farlo funzionare. Penso che sia correlato a UIBarButtonItem sì. – Noob