Sim*_*ver 3 uitableview uislider ios7
我打算把它作为一个问题发布,但我把它解决了,并且认为我会分享它以防其他人遇到这个问题.
我有一个名为SliderCell的自定义tableViewCell.我在桌子上使用了许多SliderCells.
SliderCell包含一个UISlider和一个UILabel.
当用户移动滑块时,标签将使用新值进行更新
这是在这种方法中
- (IBAction)possibilityDidChange:(UISlider *)sender {
Run Code Online (Sandbox Code Playgroud)
现在,在这种情况下,发件人是UISlider控件
要设置UILabel的值,我需要获取发件人所在的tableviewCell(sliderCell).
最初我得到的如下
SliderCell *theAnimalCell =(SliderCell*)sender.superview.superview;
Run Code Online (Sandbox Code Playgroud)
然后我可以像这样设置标签
theAnimalCell.sliderLabel.text = [NSString stringWithFormat:@"turtles %@",possibilityString];
Run Code Online (Sandbox Code Playgroud)
当我使用Xcode 4.x并以iOS6.1为目标时,一切顺利
现在,在决定200米+不能出错之后,我只是针对iOS 7而且突然间我碰到任何我的UISliders时都会崩溃
我收到这个错误
[UITableViewCellScrollView currentSlider]:发送到实例的无法识别的选择器
我在文档中找不到对此类的任何引用.
检查类我发现我期望成为SLiderCell实际上现在是一个UITableViewCellScrollView.但是,如果你通过添加一个额外的.superview上升到另一个级别,你可以进入自定义UITableViewCell,它现在再次工作
所以变化来自于
SliderCell *theAnimalCell =(SliderCell*)sender.superview.superview;
Run Code Online (Sandbox Code Playgroud)
对此
SliderCell *theAnimalCell =(SliderCell*)sender.superview.superview.superview;
Run Code Online (Sandbox Code Playgroud)
我想如果你想支持iOS 7和iOS 6,你需要在尝试获取自定义单元格之前进行检查.
嗯,就是这样,希望这证明对那里的人有用.
西蒙
| 归档时间: |
|
| 查看次数: |
1367 次 |
| 最近记录: |