Đây là bài đăng đầu tiên của tôi trên stackoverflow. Tôi là người mới phát triển iOS và tôi không phải là người nói tiếng Anh bản địa, vì vậy tôi sẽ cố hết sức để giải thích vấn đề của mình.Chuyển đổi UIViewTừ chế độ xem: sangView: hoạt ảnh không hoạt động.
Vấn đề:
Tôi đã thêm hai quan điểm để cửa sổ appdelegate của tôi và tôi muốn lật từ một đến khác sử dụng:
UIView transitionFromView:toView:
Quan điểm thứ nhất (MainScreenView) có riêng của mình ViewController
. Trên tập tin .xib của MainScreenView, tôi có một nút với một hành động gọi phương thức "goShow" được triển khai trong AppDelegate của tôi. Trong phương pháp đó tôi sử dụng UIView transitionFromView:toView:
để chuyển sang chế độ xem thứ hai. Cho đến nay mọi thứ đều hoạt động tốt. Chế độ xem thứ hai của tôi (một scrollview) được khai báo theo chương trình trong AppDelegate của tôi và có một loạt các hình ảnh bên trong nó (picturesViewController) và trên đầu trang của những người đó, có một UIPinchGestureRecognizer
.
Tôi đang sử dụng trình nhận dạng cử chỉ để quay lại màn hình chính của mình. Đó là nơi mà vấn đề là. Khi tôi thực hiện một cử chỉ nhúm trên scrollview, MainScreenView.view
xuất hiện ngay lập tức, trước hoạt ảnh, do đó hoạt ảnh lật trông có vẻ sai.
Mã Tôi đang sử dụng là:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
mainScreen = [[MainScreenViewController alloc] initWithNibName:@"MainScreenViewController" bundle: [NSBundle mainBundle]];
CGRect frame = self.window.bounds;
int pageCount = 10;
scrollView = [[UIScrollView alloc] initWithFrame:frame];
scrollView.contentSize = CGSizeMake(320*pageCount, 480);
scrollView.pagingEnabled = YES;
scrollView.showsHorizontalScrollIndicator = FALSE;
scrollView.showsVerticalScrollIndicator = FALSE;
scrollView.delegate = self;
[...] 'While' adding pictures to de scrollView
UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(goBackToMain)] autorelease];
[scrollView addGestureRecognizer:twoFingerPinch];
[self.window addSubview: scrollView];
[scrollView setHidden:TRUE];
[self.window addSubview: mainScreen.view];
[self.window makeKeyAndVisible];
return YES;
}
-(void) goShow{
[UIView transitionFromView:mainScreen.view
toView:scrollView
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionShowHideTransitionViews
completion:NULL];
[UIView commitAnimations];
}
-(void) goBackToMain {
[UIView transitionFromView:scrollView
toView:mainScreen.view
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionShowHideTransitionViews
completion:NULL];
[UIView commitAnimations];
}
Tôi đang sử dụng hiện/ẩn quan điểm thay vì addSubview/removeFromSuperView
vì tôi đã thử các add và remove và có một vụ tai nạn ứng dụng trong cử chỉ chụm, chính xác trong cùng một bước đó là không hoạt hình. Có lẽ nó là cùng một lỗi, nhưng tôi không thể tìm thấy lý do cho việc này. Bất kỳ trợ giúp sẽ được đánh giá cao.
Cảm ơn.
Ok. Với sự trợ giúp của Adrian, đây là mã UIPinchGesture đã giải quyết được vấn đề của tôi:
Đó là tốt hơn rất nhiều giải thích hơn hầu hết các người nói tiếng Anh bản địa quản lý. +1. –