2013-03-24 61 views
0

我有3個頁面,其中都包含youtube視頻(網頁瀏覽),這些webviews位於滾動視圖內。我使用了一個教程來做到這一點,每當你向任何一個方向滑動時,教程都會在下一頁停止(例如在ios主屏幕中),但是我的移動然後停止,取決於滑動運動的時間長短。使UIPageControl在每個頁面停止

這裏是我的代碼中的m:

#import "FeaturedVideosViewController.h" 

@interface FeaturedVideosViewController() 

@end 

@implementation FeaturedVideosViewController 

@synthesize scrollView, pageControl; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 
    // Custom initialization 
} 
return self; 
} 



- (void)viewDidLoad { 
[super viewDidLoad]; 

pageControlBeingUsed = NO; 
{ 
    CGRect frame; 
    frame.origin.x = self.scrollView.frame.size.width * 3; 
    frame.origin.y = 0; 
    frame.size = self.scrollView.frame.size; 

    UIView *subview = [[UIView alloc] initWithFrame:frame]; 
     [self.scrollView addSubview:subview]; 

} 

self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * 3, self.scrollView.frame.size.height); 

self.pageControl.currentPage = 0; 
self.pageControl.numberOfPages = 3; 
[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.youtube.com/embed/wYkIhYtN7yA"]]]; 
[WebView2 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.youtube.com/embed/4O7kTOTg1UE"]]]; 
[WebView3 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.youtube.com/embed/vmUW41m93oY"]]]; 
} 

- (void)scrollViewDidScroll:(UIScrollView *)sender { 
if (!pageControlBeingUsed) { 
    // Switch the indicator when more than 50% of the previous/next page is visible 
    CGFloat pageWidth = self.scrollView.frame.size.width; 
    int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
    self.pageControl.currentPage = page; 
} 
} 

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { 
pageControlBeingUsed = NO; 
} 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { 
pageControlBeingUsed = NO; 
} 

- (IBAction)changePage { 
// Update the scroll view to the appropriate page 
CGRect frame; 
frame.origin.x = self.scrollView.frame.size.width * self.pageControl.currentPage; 
frame.origin.y = 0; 
frame.size = self.scrollView.frame.size; 
[self.scrollView scrollRectToVisible:frame animated:YES]; 

// Keep track of when scrolls happen in response to the page control 
// value changing. If we don't do this, a noticeable "flashing" occurs 
// as the the scroll delegate will temporarily switch back the page 
// number. 
pageControlBeingUsed = YES; 
} 

- (void)didReceiveMemoryWarning { 
// Releases the view if it doesn't have a superview. 
[super didReceiveMemoryWarning]; 

// Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
// Release any retained subviews of the main view. 
// e.g. self.myOutlet = nil; 
self.scrollView = nil; 
self.pageControl = nil; 
} 




@end 

我將如何使它停止像iOS主屏幕例如在每一頁上?

回答

3

您是否將UIScrollView的pagingEnabled設置爲YES。

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // EXISTING CODE 
    self.scrollView.pagingEnabled = YES; 
    } 
0

單擊UIScrollView然後在右側(Attribute Inspector)tick Paging Enabled。 OR 您可以設置它programaticaly也

scrollView.pagingEnabled = yes; 

就是這樣......