2012-09-30 42 views
1

我正在構建一個包含10個圖像的可滾動圖庫。當我停在一幅圖像上時,我希望當前的圖像看起來比其他任何一邊的圖像高一點。我如何獲得焦點並調整框架?一旦拖動結束,函數scrollViewDidEndDecelerating被調用。我如何獲得對該圖像視圖框架的引用?UIScrollview使當前圖像更大

回答

1

如果您的圖像列表是有限的,並且不會太大,我會保留一個NSArray對圖像的引用。然後,在scrollViewDidEndDecelerating中,您可以使用滾動偏移來確定滾動停止的位置,並將其與整個視圖成比例地放置,並且您應該能夠分辨要顯示的數組中的哪個索引圖像。

像這樣的東西(語法可能會關閉)的

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    //assumes that "arrayOfImages" is the array of images that you are showing 
    //contentOffset.y assumes your scroll view is scrolling vertically, switch to x if horizontal 
    int indexOfImageToShow = scrollView.contentOffset.y/[arrayOfImages count]; 
    UIImage *imageToShow = [arrayOfImages objectAtIndex:indexOfImageToShow]; 
} 
+0

謝謝。但是,如何將imageToShow設置爲視圖? – user1191140

3

比方說,你在self.imageViews持有參考UIImageView S,你可以嘗試這樣的事情。

CGFloat centerX = CGRectGetMidX(self.view.bounds); 
for(UIImageView imgView * in self.imageViews) 
{ 
    if(CGRectContainsPoint(imgView, centerX)) // If imgView is close to center 
    { 
     imgView.transform = CGAffineTransformMakeScale(1.2f, 1.2f); 
    } 
    else 
    { 
     imgView.transform = CGAffineTransformIdentity; 
    } 
} 

我以爲你是橫向滾動,但如果你是垂直做它,你需要使用centerY代替。