W gruncie rzeczy dzieje się tak, że dodaję niestandardowy widok do UIBarButtonItem, i muszę go obrócić o 45 stopni, rotacja działa idealnie, jeśli jest obrócona o 90 stopni lub 180, ale kiedy jest mniej niż 90 obiekt ulega deformacji, a na 45 stopni obiekt znika. Oto fragmenty przycisku i animacji.Funkcja iOS UIImageView znika po obrocie 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];
Obrót:
[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){
}];
Próbuję również obrócić niestandardowy widok elementu przycisku paska i uruchomić go w tę samą funkcję. Inne widoki obracają się o M_PI_4, więc zastanawiam się, czy ma to coś wspólnego z UIBarButtonItem (?). –
UIBarButtonItem ma niestandardowy widok jako tło, teraz sztuczka, która sprawiła, że to działa, jest to, że niestandardowy widok wybrałem był UIImageView, który miał inny UIImageView jako dziecko, musiałem obrócić ten drugi UIImageView, aby to działało. Myślę, że jest to związane z UIBarButtonItem tak. – Noob