gpt4 book ai didi

swift - 使用 UIScrollView 和自动布局的图像 slider

转载 作者:行者123 更新时间:2023-11-30 11:22:41 26 4
gpt4 key购买 nike

我正在尝试使用scrollView和pageControl实现图像 slider ,并使用.addSubView方法以编程方式将图像附加到scrollView。代码如下:

@IBOutlet weak var sliderScrollView: UIScrollView!
@IBOutlet weak var sliderPageControl: UIPageControl!
var images: [String] = ["0", "1", "2"]

func updateSlider() {
sliderPageControl.numberOfPages = images.count

for index in 0..<images.count {
frame.origin.x = sliderScrollView.frame.size.width * CGFloat(index)
print(sliderScrollView.frame.size.width)
frame.size = sliderScrollView.frame.size

let image = UIImageView(frame: frame)
image.contentMode = .scaleAspectFill
image.image = UIImage(named: cafeObject.images[index])
sliderScrollView.addSubview(image)
}
sliderScrollView.contentSize = CGSize(width: sliderScrollView.frame.size.width * CGFloat(cafeObject.images.count), height: sliderScrollView.frame.size.height)
sliderScrollView.delegate = self
sliderPageControl.currentPage = 0
}

override func scrollViewDidScroll(_ scrollView: UIScrollView) {
let pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width

switch scrollView {
case sliderScrollView:
sliderPageControl.currentPage = Int(pageNumber)
default:
break
}
}

当我在 iPhone 8 布局上设计 Storyboard时,上面的代码在 iPhone 8 上运行得很好。但是,一旦我在 iPhone 8 Plus 中运行代码,照片就不会适应 ScrollView 的新尺寸。我向 ScrollView 添加了约束,使得顶部、前导、尾随和底部等于 super View 的顶部、前导、尾随和底部。调试时,我意识到 UIImageView 的框架仍然使用 iPhone 8 上的旧宽度。

有什么解决方法可以通过编程或使用界面生成器吗?谢谢!

最佳答案

好吧,我设法通过将 updateSlider() 函数放在 viewDidLayoutSubviews() 下解决了这个问题!

关于swift - 使用 UIScrollView 和自动布局的图像 slider ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51113249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com