2013-05-05 118 views
1

我使用以下代碼在圖像的開始和結尾處(50點)創建了具有額外區域的滾動視圖。使用pagingEnabled滾動時在特定位置停止UIScrollView

UIScrollView* scroll = [[UIScrollView alloc] initWithFrame: CGRectMake(0,0,200,100)]; 
scroll.contentSize = CGSizeMake(400,100); 

UIImageView* img1 = [[UIImageView alloc] initWithFrame: CGRectMake(50,0,100,100); 
UIImageView* img2 = [[UIImageView alloc] initWithFrame: CGRectMake(150,0,100,100); 
UIImageView* img3 = [[UIImageView alloc] initWithFrame: CGRectMake(250,0,100,100); 

//Adding images to ImageViews 

scroll.pagingEnabled = YES; 
[scroll addSubView:img1]; 
[scroll addSubView:img2]; 
[scroll addSubView:img3]; 

我第一次看到的視圖,我會看到,左邊(0-50),則附加的區域中的第一圖像(50-150),然後一半的第二圖像的(150-200 )。 當我向左滑動時,我想看到右側第一張圖像的一半,中央的第二張圖像以及右側第三張圖像的一半。

當我再次向左滑動時,我想看到第三張圖像位於中央,第二張圖像的一半位於左側,另一面位於右側。

有可能嗎?

回答

0

只要你正確地定義了一切,這是可能的。確保分配的內容大小等於您希望滾動的整體大小。確保每個頁面大小都等於滾動視圖的框架。如果框架剪輯了子視圖,則可以將clipsToBounds設置爲NO。

+0

我需要什麼滾動到滾動視圖的特定位置界定?我基本上希望每個頁面是100點,而不是200(內容寬度/框架寬度)。 – Oded 2013-05-05 09:05:22

+0

這應該有助於http://stackoverflow.com/questions/1677085/paging-uiscrollview-in-increments-smaller-than-frame-size – Stavash 2013-05-05 09:46:29

+0

而這個http://stackoverflow.com/questions/1220354/uiscrollview-horizo​​ntal-分頁樣的移動Safari瀏覽器選項卡 – Stavash 2013-05-05 10:23:51

0

您可以通過調節的UIScrollView的contentSize做到這一點

- (void)addImagesToScrollView{ 
    //An offset from where imageViewStarts 
    CGFloat xOffset = 50.0f; 
    CGRect imageViewFrame = CGRectMake(xOffset, 0.0f, 100.0f, 100.0f); 

    for (NSString *imageName in @[@"image1.jpg",@"image2.jpg",@"image3.jpg"]) 
    { 
     UIImageView *imageView = [[UIImageView alloc]initWithFrame:imageViewFrame]; 
     UIImage *image = [UIImage imageNamed:imageName]; 
     imageView.image = image; 

     [self.scrollView addSubview:imageView]; 

     imageViewFrame.origin.x+=imageViewFrame.size.width; 
    } 

    CGSize contentSize = self.scrollView.frame.size; 
    //Content size is calculate from the imageViewFrame and an offset is added to it 
    contentSize.width = imageViewFrame.origin.x+xOffset; 
    [self.scrollView setContentSize:contentSize]; 

} 

Source Code

0

您可以用下面的代碼

[YOURSCROLLVIEW setContentOffset:CGPointMake(x, y) animated:YES]; 
相關問題