2016-09-21 28 views
0

我正在嘗試製作與圖像數組關聯的頁面控件。我已經正確設置了剛纔改變背景顏色並加載到初始圖像中,但是當我沒有進一步滾動顯示時。這裏是我的代碼:使用圖像數組進行頁面控制

var images: [UIImage] = [ 
    UIImage(named: "slide1.png")!, 
    UIImage(named: "loginButton.png")!, 
    UIImage(named: "slide1.png")!, 
    UIImage(named: "slide1.png")! 
] 

func setPageViewinScroll() { 

    for index in 0..<4 { 

     frame.origin.x = self.scrollView.frame.size.width * CGFloat(index) 
     frame.size = self.scrollView.frame.size 
     self.scrollView.pagingEnabled = true 
     self.imageView.image = images[index] 
     let subview = UIView(frame: frame) 
     self.scrollView.addSubview(subview) 
    } 

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

    pageControl.addTarget(self, action: Selector("changePage:"), forControlEvents: UIControlEvents.ValueChanged) 



} 

func changePage(sender: AnyObject) ->() { 
     let x = CGFloat(pageControl.currentPage) * scrollView.frame.size.width 
     scrollView.setContentOffset(CGPointMake(x, 0), animated: true) 
    } 

有沒有人知道我在哪裏錯了?

回答

0

如何將UIImageView添加到UIScrollview而不是像這樣的代碼的UIView?

var imageOne:UIImageView! 
var imageTwo:UIImageView! 
var imageThree:UIImageView! 
var imageFour:UIImageView! 

func functionCalledFromViewDidLoad() { 

    scrollView.frame = CGRectMake(0, 0, self.view.frame.width,self.view.frame.height) 

    let scrollViewWidth = scrollView.frame.width 
    let scrollViewHeight = scrollView.frame.height 

    imageOne = UIImageView(frame: CGRectMake(0, 0,scrollViewWidth, scrollViewHeight)) 
    imageTwo = UIImageView(frame: CGRectMake(scrollViewWidth*1, 0,scrollViewWidth, scrollViewHeight)) 
    imageThree = UIImageView(frame: CGRectMake(scrollViewWidth*2, 0,scrollViewWidth, scrollViewHeight)) 
    imageFour = UIImageView(frame: CGRectMake(scrollViewWidth*3, 0,scrollViewWidth, scrollViewHeight)) 

    scrollView.addSubview(imageOne) 
    scrollView.addSubview(imageTwo) 
    scrollView.addSubview(imageThree) 
    scrollView.addSubview(imageFour) 

} 

override func viewDidLayoutSubviews() { 


    scrollView.contentSize = CGSizeMake(scrollView.frame.width * 4, scrollView.frame.height) 
    imageOne.frame.size.height = scrollView.frame.height 
    imageTwo.frame.size.height = scrollView.frame.height 
    imageThree.frame.size.height = scrollView.frame.height 
    imageFour.frame.size.height = scrollView.frame.height 
} 

您似乎也需要添加此代碼。

func scrollViewDidEndDecelerating(scrollView: UIScrollView) { 

    // Test the offset and calculate the current page after scrolling ends 
    let pageWidth:CGFloat = CGRectGetWidth(scrollView.frame) 

    let currentPage = Int(floor((scrollView.contentOffset.x-pageWidth/2)/pageWidth)+1) 

    // Change the page indicator 
    self.pageControl.currentPage = Int(currentPage) 
} 

有與此相關的話題非常好的教程,here

0

您在ImageView的,而不是在子視圖設置圖像。 I.o.w.您要將子視圖添加到每個頁面,但不要在其上設置圖像。

更改子視圖代碼以下

let subview = UIImageView(frame: frame) 
subview.image = images[index] 
self.scrollView.addSubview(subview) 
相關問題