2016-03-15 62 views
0

我已经构建了一个应用程序,允许用户选择他们的照片覆盖眼镜。它在ipad和ipad mini上的工作方式正是我想要的,但在iphone上,滚动视图的位置是错误的(请参阅图像)。视图放置在iphone和ipad

func setupPages(){ 
    pageImages = [ 
     UIImage(named: "glasses_one")!, 
     UIImage(named: "glasses_two")!, 
     UIImage(named: "glasses_three")!, 
     UIImage(named: "glasses_four")!, 
     UIImage(named: "glasses_five")!, 
     UIImage(named: "glasses_six")! 
    ] 

    let pageCount = pageImages.count 

    for _ in 0..<pageCount { 
     pageViews.append(nil) 
    } 
    print(pageViews.count) 

    let pagesScrollViewSize = scrollView.frame.size 
    scrollView.contentSize = CGSize(width: scrollWidth * CGFloat(pageImages.count), 
     height: pagesScrollViewSize.height) 

    scrollView.backgroundColor = UIColor.blueColor() 

    loadVisiblePages() 
} 

func loadVisiblePages() { 
    let pageWidth = scrollView.frame.size.width 

    page = Int(floor((scrollView.contentOffset.x * 2.0 + pageWidth)/(pageWidth * 2.0))) 
    print(page) 
    pageControl.currentPage = page 

    for index in 0...5 { 
     //print(" -- Index = \(index)") 
     loadPage(index) 
    } 
} 

func loadPage(page: Int) { 
    if page < 0 || page >= pageImages.count { 
     // If it's outside the range of what you have to display, then do nothing 
     return 
    } 

    // 1 
    if let pageView = pageViews[page] { 
     print(pageView.description) 
     // Do nothing. The view is already loaded. 
    } else { 
     // 2 
     var frame = scrollView.bounds 
     frame.origin.x = scrollWidth * CGFloat(page) 
     frame.origin.y = 0.0 
     frame.size.width = scrollWidth 
     // 3 
     let newPageView = UIImageView(image: pageImages[page]) 
     newPageView.contentMode = .ScaleAspectFit 
     newPageView.frame = frame 
     newPageView.clipsToBounds = false 
     scrollView.addSubview(newPageView) 


     // 4 
     pageViews[page] = newPageView 
    } 
} 

的Ipad

enter image description here

iPhone

enter image description here

回答

1

我觉得你的问题是你需要添加一个约束垂直居中你的形象。或者你也可以通过为你的“眼镜架”设置一个框架宽度和高度来解决这个问题。较小的屏幕周围会有较少的空间,但仍然会在中间。

+0

你的意思是垂直吗?我通过使scrollview更高的高度来暂时“固定”它。 – Lonergan6275

+1

啊,是的,我的意思是垂直,我会更新。 :) –

+0

我不再有我的iPhone测试设备,所以我会回到你这一个。 – Lonergan6275