Я пытаюсь создать приложение для переворачивания страниц в xcode. Поворот страницы отлично работает для пейзажа вправо, но для пейзажа влево, сворачивание страницы происходит слева. Я добавил вид контейнера, а затем скручивание страницы на ландшафте слева начало происходить снизу, а не справа.
Я нашел несколько предложений здесь (/3743736/ispolzovat-animatsiy-prosmotra-izobrazhenii-pomoschy-uianimationtransitioncurl-vpravo-yavlyaetsya-vozmozhnym) и здесь (/3743736/ispolzovat-animatsiy-prosmotra-izobrazhenii-pomoschy-uianimationtransitioncurl-vpravo-yavlyaetsya-vozmozhnym)
)
но оба эти предложения были со старым стилем кода перехода страницы, а не с блочным кодом. Я пытался изменить их с помощью нового кода стиля блока, но он не работает для меня.
Я прилагаю свой код здесь:
- (void)viewDidLoad
{
UIImage *img = [UIImage imageNamed:@"s1p1.png"];
currentView.image = img;
img = [UIImage imageNamed:@"s1p2.png"];
swapView.image = img;
UISwipeGestureRecognizer *nextPage;
nextPage = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(turnPage)] autorelease];
if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationLandscapeLeft) {
[nextPage setDirection:UISwipeGestureRecognizerDirectionRight];
}
else {
[nextPage setDirection:UISwipeGestureRecognizerDirectionLeft];
}
[self.view addGestureRecognizer:nextPage];
[super viewDidLoad];
}
-(void) turnPage
{
if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationLandscapeLeft)
{
NSLog(@"landscapeleft");
mainView.transform = CGAffineTransformMakeRotation(M_PI);
currentView.transform = CGAffineTransformMakeRotation(-M_PI);
swapView.transform = CGAffineTransformMakeRotation(-M_PI);
[UIView transitionWithView:mainView
duration:1
options:UIViewAnimationOptionTransitionCurlUp
animations:^{
currentView.hidden = YES;
swapView.hidden = NO;
}
completion:^(BOOL finished){
UIImage *temp = [currentView.image retain];
currentView.image = swapView.image;
swapView.image = temp;
[temp release];
currentView.hidden = NO;
swapView.hidden = YES;
}];
}
else
{
NSLog(@"landscaperight");
[UIView transitionWithView:self.view
duration:1
options:UIViewAnimationOptionTransitionCurlUp
animations:^{
currentView.hidden = YES;
swapView.hidden = NO;
}
completion:^(BOOL finished){
UIImage *temp = [currentView.image retain];
currentView.image = swapView.image;
swapView.image = temp;
[temp release];
currentView.hidden = NO;
swapView.hidden = YES;
}];
}
}
, где у меня есть два представления: self.view - это первичное представление из окна, а затем mainView - это мое представление контейнера. currentView и SwapView - это изображения.
Есть мысли по этому поводу? Большое спасибо за просмотр этого.