我有一个带图片的ScrollView。自从转换到Xcode8/Swift 3以后,图片不再适合ScrollView的大小。在图像内部,在Xcode 7/2快速图像中保持其原始大小,该图像非常适合滚动和完美匹配。下面是相应的代码:ScrollView中的图像大小
import UIKit
class GoaLawahViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var menuButton: UIBarButtonItem!
@IBOutlet weak var ScrollView: UIScrollView!
@IBOutlet weak var PageControl: UIPageControl!
override func viewDidLoad() {
super.viewDidLoad()
let ScrollViewWidth:CGFloat = self.ScrollView.frame.width
let scrollViewHeight:CGFloat = self.ScrollView.frame.height
let imgOne = UIImageView(frame: CGRect(x: 0, y: 0,width: ScrollViewWidth, height: scrollViewHeight))
imgOne.image = UIImage(named: "GoaLawah04.jpg")
let imgTwo = UIImageView(frame: CGRect(x: ScrollViewWidth, y: 0,width: ScrollViewWidth, height: scrollViewHeight))
imgTwo.image = UIImage(named: "GoaLawah07.jpg")
let imgThree = UIImageView(frame: CGRect(x: ScrollViewWidth*2, y: 0,width: ScrollViewWidth, height: scrollViewHeight))
imgThree.image = UIImage(named: "GoaLawah09.jpg")
self.ScrollView.addSubview(imgOne)
self.ScrollView.addSubview(imgTwo)
self.ScrollView.addSubview(imgThree)
self.ScrollView.contentSize = CGSize(width: self.ScrollView.frame.width * 3, height: 1.0)
self.ScrollView.delegate = self
self.PageControl.currentPage = 0
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView){
// Test the offset and calculate the current page after scrolling ends
let pageWidth:CGFloat = scrollView.frame.width
let currentPage:CGFloat = floor((scrollView.contentOffset.x-pageWidth/2)/pageWidth)+1
// Change the indicator
self.PageControl.currentPage = Int(currentPage);
}
}
谢谢您的回,实际上这是一个很好的解决方案,但是采用这种解决方案时,当我滚动时,分页效果不好,我看到的是前一张图片的结尾是下一张图片的开头,尽管要么滚动分页 – SWOON
您希望得到什么样的结果恩?我不确定我是否明白你的观点。 –
你好,其实根据我的代码我有ScrollView与图像。但在模拟图像不适合尺寸滚动。当我滚动时,我移动原始图像的宽度不适应。之前xcode 2 7 swift他们正在适应完美的滚动和花费的图像没有问题 – SWOON