我已经用图片制作了一个带有页面控件的滚动视图(到目前为止还不错)……我想使用(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))
}
}
发布于 2018-06-07 06:11:24
只需更改UIButton循环中的UIImageView,如下所示
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)
即可。
发布于 2018-06-07 06:05:31
您可以使用UIButton而不是UIImageView。
要设置图像,请使用:
button.setImage(image, for: .normal)
button.setBackgroundImage(image, for: .normal)
要检索图像,请使用:
button.currentImage
button.currentBackgroundImage
https://stackoverflow.com/questions/50729689
复制相似问题