【问题标题】:Swift - scroll bar swipe functionSwift - 滚动条滑动功能
【发布时间】:2017-05-22 13:51:14
【问题描述】:

这是阿里巴巴的 ios 应用程序。在应用程序中,如果我向左滑动,该栏将向左滚动并显示更多可点击选项。我的问题是,这是怎么做的?

谢谢!

【问题讨论】:

标签: ios swift scroll uiscrollview


【解决方案1】:

我解决了。

1. 首先创建一个.xib 文件,命名为你想要的任何名称,我将我的命名为unnamedView,然后添加标签和imageViews。

2.然后像这样创建UnnamedView类文件并添加所有标签和图像

class unnamedView: UIView {
    @IBOutlet weak var firstButton: UIButton!
    @IBOutlet weak var firstImage: UIImageView!
    @IBOutlet weak var firstLabel: UILabel!
}

3.然后在主视图控制器中为 UnnamedView 创建一个数组。

let unnamed = ["title1":"textTitleToLabel","image1":"nameOfImage"]

var unnamedArray = [Dictionary<String,String>]()

4.然后我将滚动视图添加到主视图控制器

@IBOutlet weak var unnamedScrollView: UIScrollView!

5. 在 vi​​ewDidLoad() 中添加以下内容

unnamedArray = [unnamed]
        unnamedScrollView.isPagingEnabled = true
        unnamedScrollView.contentSize = CGSize(width: unnamedScrollView.bounds.width * CGFloat(unnamedArray.count), height: 100)
        unnamedScrollView.showsHorizontalScrollIndicator = false
        unnamedScrollView.delegate = self
        loadUnnamed()

6.最后在viewDidLoad下面添加了

func loadCategories() {

        for (index, category) in categoriesArray.enumerated() {
            if let unnamedView = Bundle.main.loadNibNamed("unnamedView", owner: self, options: nil)?.first as? unnamedView {

                unnamedView.firstImage.image = UIImage(named: category["image1"]!)
                unnamedView.firstLabel.text = category["title1"]

                unnamedView.firstButton.tag = index
                unnamedView.firstButton.addTarget(self, action: #selector(ViewController.gotoCategory(sender:)), for: .touchUpInside)

                unnamedScrollView.addSubview(unnamedView)
                unnamedView.frame.size.width = self.view.bounds.size.width
                unnamedView.frame.origin.x = CGFloat(index) * self.view.bounds.size.width

            }
        }
    }

    func gotoCategory (sender:UIButton) {
        print("The user wants to buy feature \(sender.tag)")
        let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let newViewController = storyBoard.instantiateViewController(withIdentifier: "tableView")
        self.present(newViewController, animated: true, completion: nil)
    }

另外,如果您想添加页面控制点,只需添加到此即可。

@IBOutlet weak var featurePageControl: UIPageControl!

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let page = scrollView.contentOffset.x / scrollView.frame.size.width
    featurePageControl.currentPage = Int(page)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2017-04-05
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    相关资源
    最近更新 更多