大佬教程收集整理的这篇文章主要介绍了ios – 带点图像的自定义UIPageControl,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
稍微修改它为新版本的swift我们有:
class myPageControl: UIPageControl { var activeImage: UIImage! var inactiveImage: UIImage! required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) activeImage = UIImage(named: "active.png")! inactiveImage = UIImage(named: "inactive.png")! } func updateDots() { for i in 0 ..< self.subviews.count { let dot : UIImageView = imageViewForSubview(self.subviews[i]) if (i == self.currentPagE) { dot.image = activeImage } else { dot.image = inactiveImage } } } func imageViewForSubview(view: UIView) -> UIImageView { var dot: UIImageView? = nil if (view.isKindOfClass(UIView)) { for subview: UIView in view.subviews { if (subview is UIImageView) { dot = (subview as! UIImageView) } } if Dot == nil { dot = UIImageView(frame: CGRectMake(0.0,0.0,view.frame.size.width,view.frame.size.height)) view.addSubview(dot!) } } else { dot = (view as! UIImageView) } return dot! } func setPage(page: int) { super.currentPage = page self.updateDots() } }
您必须在viewDidAppear()中调用“updateDots()”,并为页面控件调用valueChanged处理程序.
import UIKit class CustomImagePageControl: UIPageControl { let activeImage:UIImage = UIImage(named: "SELEctedPage")! let inactiveImage:UIImage = UIImage(named: "UnSELEctedPage")! override func awakeFromNib() { super.awakeFromNib() self.pageInDicatorTintColor = UIColor.clear self.currentPageInDicatorTintColor = UIColor.clear self.clipsToBounds = false } func updateDots() { var i = 0 for view in self.subviews { if let imageView = self.imageForSubview(view) { if i == self.currentPage { imageView.image = self.activeImage } else { imageView.image = self.inactiveImage } i = i + 1 } else { var dotImage = self.inactiveImage if i == self.currentPage { dotImage = self.activeImage } view.clipsToBounds = false view.addSubview(UIImageView(image:dotImagE)) i = i + 1 } } } fileprivate func imageForSubview(_ view:UIView) -> UIImageView? { var dot:UIImageView? if let dotImageView = view as? UIImageView { dot = dotImageView } else { for foundView in view.subviews { if let imageView = foundView as? UIImageView { dot = imageView break } } } return dot } }
以上是大佬教程为你收集整理的ios – 带点图像的自定义UIPageControl全部内容,希望文章能够帮你解决ios – 带点图像的自定义UIPageControl所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。