Swift 有没有一种方法可以结合页面控制在滚动视图中自动布局图像?
这是我第一次参赛。我是新的应用程序设计和来自德国,但我仍然希望你能理解我的问题。我使用了Xcode 11和Swift 5 我使用页面控件和滚动视图在一个屏幕中切换图像。在iPhone11上看起来不错,但在iPhone8上,图像的宽度和高度太大,这就是为什么当页面控件位于第二段时,仍然可以看到第一幅图像的一部分。对于第二个图像和第三个片段,同样的情况也会发生。 有没有办法使图像适合屏幕大小 这是我的代码:Swift 有没有一种方法可以结合页面控制在滚动视图中自动布局图像?,swift,xcode,uiscrollview,autolayout,uipagecontrol,Swift,Xcode,Uiscrollview,Autolayout,Uipagecontrol,这是我第一次参赛。我是新的应用程序设计和来自德国,但我仍然希望你能理解我的问题。我使用了Xcode 11和Swift 5 我使用页面控件和滚动视图在一个屏幕中切换图像。在iPhone11上看起来不错,但在iPhone8上,图像的宽度和高度太大,这就是为什么当页面控件位于第二段时,仍然可以看到第一幅图像的一部分。对于第二个图像和第三个片段,同样的情况也会发生。 有没有办法使图像适合屏幕大小 这是我的代码: ``` import UIKit class ViewController: UIView
```
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var pageControl: UIPageControl!
var Pages: [String] = ["Page1","Page2","Page3"]
var frame = CGRect.zero
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
pageControl.numberOfPages = Pages.count //
setupScreens()
scrollView.showsHorizontalScrollIndicator = false
scrollView.showsVerticalScrollIndicator = false
scrollView.isPagingEnabled = true
scrollView.delegate = self
}
func setupScreens() {
for index in 0..<Pages.count {
// 1.
frame.origin.x = scrollView.frame.size.width * CGFloat(index)
frame.size = scrollView.frame.size
// 2.
let imageView = UIImageView(frame: frame)
imageView.image = UIImage(named: Pages[index])
self.scrollView.addSubview(imageView) }
// 3.
scrollView.contentSize = CGSize(width: (scrollView.frame.size.width * CGFloat(Pages.count)), height: scrollView.frame.size.height)
scrollView.delegate = self
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width
pageControl.currentPage = Int(pageNumber)
}
}
```
```
导入UIKit
类ViewController:UIViewController、UIScrollViewDelegate{
@iBCROLLVIEW:UIScrollView!
@IBVAR弱页面控制:UIPageControl!
变量页:[字符串]=[“第1页”、“第2页”、“第3页”]
var frame=CGRect.zero
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后执行任何其他设置。
pageControl.numberOfPages=Pages.count//
设置屏幕()
scrollView.showsHorizontalScrollIndicator=false
scrollView.showsVerticalScrollIndicator=false
scrollView.isPaginEnabled=true
scrollView.delegate=self
}
函数设置屏幕(){
对于0..中的索引,除了调用viewDidLoad()
中的setupScreens()
方法外,您的代码工作正常
在viewdilayoutsubviews
中调用该方法,这样它将获得scrollView
的正确帧
override func viewDidLayoutSubviews() {
setupScreens()
}
从下载演示
除了调用viewDidLoad()
中的setupScreens()
方法外,您的代码工作正常
在viewdilayoutsubviews
中调用该方法,这样它将获得scrollView
的正确帧
override func viewDidLayoutSubviews() {
setupScreens()
}
从下载演示
非常感谢。我在那个问题上坐了大概两个小时。非常感谢。我在那个问题上坐了大概两个小时。