斯威夫特:如何在动态UITableView的自定义单元格中获取滑块的值?

本杰明1956

我在以下情况下有问题:

我有一个UITableView动态单元格。其中,我使用自定义的UITableViewCell一个UISlider如何获得滑块的值?

我创建了以下示例:(可在此处下载项目文件:Link

SliderClass.swift

import UIKit

class SliderClass: NSObject {
    var title: String
    var subtitle: String
    var sliderMinimum: Float
    var sliderMaximum: Float

    init(title: String, subtitle: String, sliderMinimum: Float, sliderMaximum: Float) {
        self.title = title
        self.subtitle = subtitle
        self.sliderMinimum = sliderMinimum
        self.sliderMaximum = sliderMaximum

    }
}

SliderTableViewCell.swift

import UIKit

class SliderTableViewCell: UITableViewCell {

    @IBOutlet weak var cellTextLabel: UILabel!
    @IBOutlet weak var cellDetailTextLabel: UILabel!
    @IBOutlet weak var cellSlider: UISlider!

    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
    }
}

TableViewController.swift

import UIKit

class TableViewController: UITableViewController {

    var slider: [SliderClass] = []

    override func viewDidLoad() {
        super.viewDidLoad()
        title = "Slider"

        let slider1 = SliderClass(title: "Title1", subtitle: "Subtitle1", sliderMinimum: 0, sliderMaximum: 100)
        let slider2 = SliderClass(title: "Title2", subtitle: "Subtitle2", sliderMinimum: 0, sliderMaximum: 200)

        slider = [slider1, slider2]
    }

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return slider.count
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("sliderCell", forIndexPath: indexPath) as! SliderTableViewCell

        let slider: SliderClass
        slider = self.slider[indexPath.row]

        cell.cellTextLabel.text = slider.title
        cell.cellDetailTextLabel?.text = slider.subtitle
        cell.cellSlider.minimumValue = slider.sliderMinimum
        cell.cellSlider.maximumValue = slider.sliderMaximum

        return cell
    }

    func sliderValueChange() {
     // I need help here:
     // Which slider changed to which value?

     // var slider = ...
     // var sliderValue = ...
     // NSLog("Value of slider:%@ changed to:%i", slider, sliderValue)
    }
}

这是使用上面的代码创建的UITableView的屏幕截图。 截屏

马特·勒·弗勒尔

尝试将其添加到您的cellForRowAtIndexPath函数中:

cell.cellSlider.tag = indexPath.row
cell.cellSlider.addTarget(self, action: "sliderValueChange:", forControlEvents: .ValueChanged)

然后在表函数之外添加如下内容:

func sliderValueChange(sender: UISlider) {
    // Get the sliders value
    var currentValue = Int(sender.value)
    var sliderRow = sender.tag

    // Do whatever you want with the value :)
    // And now the row of the slider!
}

确保cellSlider目标的动作名称与函数名称相同!而且由于需要一个论点,所以请不要忘记最后的冒号。

总结一下,这是上述操作的一个非常简单的示例:

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 2    // 2 rows in the cell, for demo purposes
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TableViewCell

        cell.slider.tag = indexPath.row
        cell.slider.addTarget(self, action: "sliderChange:", forControlEvents: .ValueChanged)

        return UITableViewCell()
    }

    func sliderChange(sender: UISlider) {
        let currentValue = sender.value    // get slider's value
        let row = sender.tag               // get slider's row in table

        print("Slider in row \(row) has a value of \(currentValue)")
        // example output - Slider in row 1 has a value of 0.601399
    }

}

class TableViewCell: UITableViewCell {

    @IBOutlet var slider: UISlider!

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在一个UITableView中调用不同的自定义单元格?

来自分类Dev

Swift-如何在单击按钮时在自定义表格视图单元格中获取标签值

来自分类Dev

如何在Excel中获取单元格自定义RGB颜色?

来自分类Dev

如何在自定义tableView单元格中显示JSON值的数组

来自分类Dev

如何在iOS中管理自定义单元格标签值?

来自分类Dev

使用来自 xib 的自定义单元格在 UITableView 中动态行高

来自分类Dev

UITapGestureRecognizer用于UITableView中的自定义单元格

来自分类Dev

从核心数据中获取并使用自定义单元格显示在 UITableView 中

来自分类Dev

如何在iOS的UITableView中为自定义单元格选择所有功能

来自分类Dev

如何禁用UITableview单元格的UserInteraction,但不能在单元格的自定义按钮中禁用

来自分类Dev

如何在tableView之外获取所有自定义tableview单元格textField和textView值

来自分类Dev

如何增加UITableView中的自定义单元格的宽度

来自分类Dev

如何从自定义单元格显示 UILabel 保存在 UITableView 中的更改

来自分类Dev

在自定义函数中获取单元格对象

来自分类Dev

访问自定义单元格中的标签值

来自分类Dev

如何在动态UITableView中创建原型单元格?

来自分类Dev

如何在Swift中将值从自定义单元格设置/传递给ViewController

来自分类Dev

单击自定义单元格中的按钮时获取包装单元格

来自分类Dev

具有自定义和动态视图的UITableView单元格-内容

来自分类Dev

带有动态节和自定义单元格的UITableView

来自分类Dev

如何在UITableView静态单元格中动态更改单元格高度

来自分类Dev

在 Excel 中更新单元格值时,如何使自定义排序自动更新?

来自分类Dev

如何在自定义单元格中添加删除附件?

来自分类Dev

如何在handsontable中的单元格内添加自定义按钮?

来自分类Dev

如何在cellforrow中添加2个不同的自定义单元格?

来自分类Dev

如何在Swift的tableview单元格中添加自定义imageview?

来自分类Dev

如何在TableView单元格Swift中自定义和实现Slider

来自分类Dev

如何在TableView单元格Swift中自定义和实现Slider

来自分类Dev

如何在表格视图单元格中隐藏自定义类标签?

Related 相关文章

  1. 1

    如何在一个UITableView中调用不同的自定义单元格?

  2. 2

    Swift-如何在单击按钮时在自定义表格视图单元格中获取标签值

  3. 3

    如何在Excel中获取单元格自定义RGB颜色?

  4. 4

    如何在自定义tableView单元格中显示JSON值的数组

  5. 5

    如何在iOS中管理自定义单元格标签值?

  6. 6

    使用来自 xib 的自定义单元格在 UITableView 中动态行高

  7. 7

    UITapGestureRecognizer用于UITableView中的自定义单元格

  8. 8

    从核心数据中获取并使用自定义单元格显示在 UITableView 中

  9. 9

    如何在iOS的UITableView中为自定义单元格选择所有功能

  10. 10

    如何禁用UITableview单元格的UserInteraction,但不能在单元格的自定义按钮中禁用

  11. 11

    如何在tableView之外获取所有自定义tableview单元格textField和textView值

  12. 12

    如何增加UITableView中的自定义单元格的宽度

  13. 13

    如何从自定义单元格显示 UILabel 保存在 UITableView 中的更改

  14. 14

    在自定义函数中获取单元格对象

  15. 15

    访问自定义单元格中的标签值

  16. 16

    如何在动态UITableView中创建原型单元格?

  17. 17

    如何在Swift中将值从自定义单元格设置/传递给ViewController

  18. 18

    单击自定义单元格中的按钮时获取包装单元格

  19. 19

    具有自定义和动态视图的UITableView单元格-内容

  20. 20

    带有动态节和自定义单元格的UITableView

  21. 21

    如何在UITableView静态单元格中动态更改单元格高度

  22. 22

    在 Excel 中更新单元格值时,如何使自定义排序自动更新?

  23. 23

    如何在自定义单元格中添加删除附件?

  24. 24

    如何在handsontable中的单元格内添加自定义按钮?

  25. 25

    如何在cellforrow中添加2个不同的自定义单元格?

  26. 26

    如何在Swift的tableview单元格中添加自定义imageview?

  27. 27

    如何在TableView单元格Swift中自定义和实现Slider

  28. 28

    如何在TableView单元格Swift中自定义和实现Slider

  29. 29

    如何在表格视图单元格中隐藏自定义类标签?

热门标签

归档