使用按钮的水平滚动视图/页面控件



我已经使用图像制作了一个带有页面控制的滚动视图(到目前为止,一切都很好(...我想使用(3(个按钮代替图像,并将图像存储在按钮中。因此,我稍后可以为每个单独的按钮创建函数。很难尝试。

这是我的代码:

import UIKit
class AddImovelVC: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var scrollImageView: UIScrollView!
@IBOutlet weak var pageControl: UIPageControl!

var imageArray = [UIImage]()

override func viewDidLoad() {
super.viewDidLoad()
scrollImageView.delegate = self
imageArray = [UIImage(named:"0.png"), UIImage(named:"1.png"), UIImage(named:"2.png")] as! [UIImage]
for i in 0..<imageArray.count{
let imageView = UIImageView()
imageView.image = imageArray[i]
imageView.contentMode = .scaleToFill
let xPosition = self.view.frame.width * CGFloat(i)
imageView.frame = CGRect(x:xPosition, y:0, width: self.scrollImageView.frame.width, height: self.scrollImageView.frame.width)
scrollImageView.contentSize.width = scrollImageView.frame.width * CGFloat(i+1)
scrollImageView.addSubview(imageView)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func scrollViewDidScroll(_ scrollImageView: UIScrollView) {
pageControl.currentPage = Int(scrollImageView.contentOffset.x / CGFloat(375))
}
}

只需在 for 循环中更改 UIImageView for UIButton,如下所示

let i = 0
let button = UIButton()
button.setImage(imageArray[i], for: [])
button.imageView?.contentMode = .scaleToFill
let xPosition = self.view.frame.width * CGFloat(i)
button.frame = CGRect(x:xPosition, y:0, width: self.scrollImageView.frame.width, height: self.scrollImageView.frame.width)
scrollImageView.contentSize.width = scrollImageView.frame.width * CGFloat(i+1)
scrollImageView.addSubview(button)

如果要在用户点击按钮时执行某些操作,只需在创建按钮后添加button.addTarget(self, action: #selector(nameOfYourFunction), for: .touchUpInside)即可。

您可以使用UIButton而不是UIImageView。

要设置映像,请使用:

button.setImage(image, for: .normal)
button.setBackgroundImage(image, for: .normal)

要检索图像,请使用:

button.currentImage
button.currentBackgroundImage

最新更新