大佬教程收集整理的这篇文章主要介绍了ios – 将滚动按钮添加到滚动视图,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
class ViewController: UIViewController { @IBOutlet weak var categoryScrollView: UIScrollView! var categoryArr = ["Jack","Mark","Down","Bill","Steve"] override func viewDidLoad() { super.viewDidLoad() let scrollingView = colorButtonsView(CGSizeMake(150,categoryScrollView.frame.size.height),buttonCount: 5) categoryScrollView.contentSize = scrollingView.frame.size categoryScrollView.addSubview(scrollingView) categoryScrollView.showsVerticalScrollInDicator = false categoryScrollView.delegate = self categoryScrollView.pagingEnabled = true categoryScrollView.inDicatorStyle = .Default } func colorButtonsView(buttonSize:CGSize,buttonCount:int) -> UIView { let buttonView = UIView() buttonView.frame.origin = CGPointMake(0,0) let padding = CGSizeMake(10,10) buttonView.frame.size.width = (buttonSize.width + padding.width) * CGFloat(buttonCount) var buttonPosition = CGPointMake(padding.width * 0.5,padding.height) let buttonIncrement = buttonSize.width + padding.width for i in 0...(buttonCount - 1) { var button = UIButton.buttonWithType(.Custom) as! UIButton button.frame.size = buttonSize button.frame.origin = buttonPosition buttonPosition.x = buttonPosition.x + buttonIncrement button.settitle(categoryArr[i],forState: UIControlState.Normal) buttonView.addSubview(button) } return buttonView } } extension ViewController:UIScrollViewDelegate{ func scrollViewDidEndDecelerating(scrollView: UIScrollView) { let index = round(scrollView.contentOffset.x / scrollView.frame.size.width) print(indeX) } }
func setContentOffset(scrollView: UIScrollView) { let numOfItems = itemCount // 5 let stopOver = scrollView.contentSize.width / CGFloat(numOfItems) let x = round(scrollView.contentOffset.x / stopOver) * stopOver guard x >= 0 && x <= scrollView.contentSize.width - scrollView.frame.width else { return } scrollView.setContentOffset(CGPointMake(x,scrollView.contentOffset.y),animated: truE) }
extension ViewController: UIScrollViewDelegate { func scrollViewWillBeginDecelerating(scrollView: UIScrollView) { setContentOffset(scrollView) } func scrollViewDidEndDragging(scrollView: UIScrollView,willDecelerate decelerate: Bool) { guard !decelerate else { return } setContentOffset(scrollView) } }
还在Github https://github.com/rishi420/ScrollViewCustomPaging中做了一个演示项目
更新:
var veLocityX = CGFloat(0.0)
.
func setContentOffset(scrollView: UIScrollView) { let numOfItems = itemCount let stopOver = scrollView.contentSize.width / CGFloat(numOfItems) var x = round((scrollView.contentOffset.x + (veLocityX * 150)) / stopOver) * stopOver // 150 is for test. Change it for your liking x = max(0,min(x,scrollView.contentSize.width - scrollView.frame.width)) scrollView.setContentOffset(CGPointMake(x,animated: truE) }
.
func scrollViewWillEndDragging(scrollView: UIScrollView,withVeLocity veLocity: CGPoint,targetContentOffset: UnsafeMutablePointer<CGPoint>) { veLocityX = veLocity.x }
以上是大佬教程为你收集整理的ios – 将滚动按钮添加到滚动视图全部内容,希望文章能够帮你解决ios – 将滚动按钮添加到滚动视图所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。