2016-04-29 2 views
2

Я пытаюсь создать ячейку слайдера в UItableview с быстрым, она появляется, но она не работает, я хочу отобразить ее значение в режиме реального времени, но она не работает , Я попытался использовать action на самом слайдере, я попробовал изменить Editing Changed Метод тоже не работает.Swift 2 не может добавить слайдер в ячейку UITableView

Вот мой мобильный код:

import UIKit 


class SliderCell: UITableViewCell { 

    @IBOutlet weak var titleLabel: UILabel! 
    @IBOutlet weak var maxLegendLabel: UILabel! 
    @IBOutlet weak var minLegendLabel: UILabel! 
    @IBOutlet weak var slider: UISlider! 
    @IBOutlet weak var answerLabel: UILabel! 


    override func awakeFromNib() { 
     super.awakeFromNib() 
     // Initialization code 
     slider.userInteractionEnabled = true 
     slider.continuous = true 
     // slider.addTarget(self, action: #selector(sliderValueChanged), forControlEvents: UIControlEvents.ValueChanged) 

    } 

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

     // Configure the view for the selected state 
    } 

    @IBAction func sliderAction(sender: UISlider) { 
     print("slider ACTION value") 
     print(sender.value) 
    } 

    func sliderValueChanged(sender: UISlider) { 
     print("slider value") 
     print(sender.value) 
     answerLabel.text = "Your choice : " + String(sender.value) 

    } 

    func displayBlock(block: Block){ 
     titleLabel.text = block.title 
     minLegendLabel.text = block.range?.legendMin 
     maxLegendLabel.text = block.range?.legendMax 
     slider.minimumValue = Float((block.range?.min)!)! 
     slider.maximumValue = Float((block.range?.max)!)! 
     slider.value = 1 
    } 
} 

и вот как я объявляю его в my tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell методе:

let cell = tableView.dequeueReusableCellWithIdentifier(CurrentFormTableView.CellIdentifiers.SliderCell, forIndexPath: indexPath) as! SliderCell 
       cell.displayQuestion(block) 
       cell.selectionStyle = UITableViewCellSelectionStyle.None 
       tableView.rowHeight = UITableViewAutomaticDimension 
       tableView.estimatedRowHeight = 160.0 
       return cell 

ответ

1

Добавить это в таблице вида ячейки:

sliderDemo = UISlider(frame:CGRectMake(0, 0, 200,20)) 
    var numberOfSteps : NSInteger = numbers.count - 1 
    sliderDemo.minimumValue = 6.5 
    sliderDemo.maximumValue = 4.1 
    sliderDemo.continuous = true 
    sliderDemo.value = 4.0 
    sliderDemo.addTarget(self, action: "sliderValueDidChange:", forControlEvents: .ValueChanged) 
    self.view.addSubview(sliderDemo) 

func sliderValueDidChange(sender:UISlider!) 
{ 
    println("number:\(sender.value)") 
} 
+0

Я уже пробовал это, но ползунок работает некорректно, иногда он моделирует иногда блокируется – fandro

0

I добавили ползунок к самой Раскадке и в коде я сделал это:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! MenuTableViewCell 
if indexPath.row == 0 { 
      cell.slider.alpha = 1 
     } else { 
      cell.slider.alpha = 0 
     } 
return cell 
} 

Это означает, что он покажет слайдер только в первой ячейке, и каждая другая ячейка не покажет его.