簡體   English   中英

iOS中的快速滾動設計模式

[英]Quick Scrolling Design Pattern in iOS

我的應用程序列表很長。 每個單元格都有多行文本和一張大圖片,因此滾動瀏覽此200多個項目非常繁瑣。

我想實現一個解決方案,使滾動更容易,而無需實現聯系人應用程序中所示的按字母順序滾動(因為這將阻止我允許快速滾動)。

我想實現一個解決方案,如果您在右側滾動(手指懸停在右側滾動條上的位置),則其效果與單擊並拖動滾動條相同在桌面上(這意味着您可以非常快速地將滾動條拖動到頂部或底部)。

這是iOS可行的設計嗎? 如果是這樣,實現它的最佳方法是什么?

您可以為此使用UISlider。 在這里,我創建了一個具有1000行的小型tableview的示例,並帶有一個滾動它們的滑塊: example

您可以自定義UISlider以使其更小,更垂直或任何您想要的形狀。 如果文件離線,這是viewControllers代碼:

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var slider: UISlider!
    @IBOutlet weak var tableView: UITableView!
    private let numberOfRows = 1000

    override func viewDidLoad() {
        super.viewDidLoad()
        slider.maximumValue = Float(numberOfRows - 1) //due to rows goes from 0 to 999
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return numberOfRows
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cellIdentifier") as! UITableViewCell
        cell.textLabel?.text = "\(indexPath.row)"
        return cell;
    }

    @IBAction func sliderValueChanged(sender: UISlider) {
        let positionToScroll = sender.value
        tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: Int(positionToScroll), inSection: 0), atScrollPosition: UITableViewScrollPosition.None, animated: false)
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM