func tableVIEw(tableVIEw: UItableVIEw,cellForRowAtIndexPath indexPath: NSIndexPath) -> UItableVIEwCell { let cell = UItableVIEwCell() if indexPath.section == 0 { let slIDer = UiSlider(frame: CGRectMake(0,320,44)) slIDer.userInteractionEnabled = true slIDer.minimumValue = 1 slIDer.maximumValue = 100 slIDer.value = 50 slIDer.continuous = true cell.addSubvIEw(slIDer) println(cell.bounds) let label = UILabel(frame: CGRectMake(260,-20,100,20)) var theValue = Int(slIDer.value) label.text = "\(theValue)" + "mi." cell.addSubvIEw(label) }解决方法 你可以使用一些技巧来做到这一点,首先你需要像建议的那样设置UiSlider的目标,另一点是获取所选的行,你可以在tagPath属性中保存它.如下面的代码:
overrIDe func tableVIEw(tableVIEw: UItableVIEw,cellForRowAtIndexPath indexPath: NSIndexPath) -> UItableVIEwCell { let cell = tableVIEw.dequeueReusableCellWithIDentifIEr("Cell",forIndexPath: indexPath) as! UItableVIEwCell let slIDer = UiSlider(frame: CGRectMake(0,44)) slIDer.userInteractionEnabled = true slIDer.minimumValue = 1 slIDer.maximumValue = 100 slIDer.value = 50 slIDer.continuous = true // set the target to respond to changes. slIDer.addTarget(self,action: "slIDerValueChanged:",forControlEvents: UIControlEvents.ValueChanged) // save the indexPath.row slIDer.tag = indexPath.row cell.addSubvIEw(slIDer) let label = UILabel(frame: CGRectMake(105,20)) var theValue = Int(slIDer.value) label.text = "\(theValue)" + "mi." cell.addSubvIEw(label) return cell}
另一个问题是设置UILabel文本,您可以通过获取单元格内部的完全视图来实现,如下面的代码所示:
func slIDerValueChanged(sender: AnyObject) { var slIDer = sender as! UiSlider let cell = self.tableVIEw.cellForRowAtIndexPath(NSIndexPath(forRow: slIDer.tag,inSection: 0)) as UItableVIEwCell! // If you kNow the exactly index // var label = cell.subvIEws[4] as! UILabel // label.text = "\(slIDer.value)" // assuming you have only one `UILabel` insIDe your cell for vIEw in cell.subvIEws { if let label = vIEw as? UILabel { label.text = "\(slIDer.value)" } }}
在上面的代码中我只是为了显示方式在UItableVIEwCell中设置了确切的数字,但是强烈推荐的方法是遍历所有UIVIEw并找到你的UILabel,就像在这个问题Find UILabel in UIView in Swift中提出的方法一样,因为数字可以改变.
正如一些人之前所说,通过Interface Builder更容易设置自定义单元格,但这取决于您.
我希望这对你有帮助.
总结以上是内存溢出为你收集整理的ios – UISlider没有更新Swift中的当前值全部内容,希望文章能够帮你解决ios – UISlider没有更新Swift中的当前值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)