[英]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.