带有标签和 UISlider 的自定义 UITableViewCell 在 ios 7 的 6 次崩溃中运行良好。 ?? UITableViewCellScrollView?
Posted
技术标签:
【中文标题】带有标签和 UISlider 的自定义 UITableViewCell 在 ios 7 的 6 次崩溃中运行良好。 ?? UITableViewCellScrollView?【英文标题】:custom UITableViewCell with label and UISlider worked fine in 6 crashes in ios 7. ?? UITableViewCellScrollView? 【发布时间】:2013-10-01 14:08:14 【问题描述】:我打算将此作为问题发布,但我解决了问题并认为我会分享它以防其他人遇到此问题。
我有一个名为 SliderCell 的自定义 tableViewCell。我在我的桌子上使用了许多 SliderCells。
SliderCell 包含一个 UISlider 和一个 UILabel。
当用户移动滑块时,标签会更新为新值
这是在这个方法中
- (IBAction)possibilityDidChange:(UISlider *)sender
现在这种情况下的发送者是 UISlider 控件
要设置 UILabel 的值,我需要获取发送者所在的 tableviewCell (sliderCell)。'
原来我是这样得到的
SliderCell *theAnimalCell =(SliderCell*)sender.superview.superview;
然后我可以像这样设置标签
theAnimalCell.sliderLabel.text = [NSString stringWithFormat:@"turtles %@",possibilityString];
当我使用 Xcode 4.x 并以 ios6.1 为目标时,一切都很好
现在,在确定 200m+ 不会错后,我只是针对 iOS 7,突然我一接触我的 UISlider 就会崩溃
我收到此错误
[UITableViewCellScrollView currentSlider]: 无法识别的选择器发送到实例
我在文档中找不到对此类的任何引用。
【问题讨论】:
这里有同样的问题!! 您是否使用自定义滑块和您自己的动画?我是,动画不再工作。 【参考方案1】:检查类我发现我期望的 SLiderCell 实际上现在是 UITableViewCellScrollView。 但是,如果您通过添加额外的 .superview 来提升另一个级别,您确实可以访问自定义 UITableViewCell 并且它现在可以再次工作
所以变化来自
SliderCell *theAnimalCell =(SliderCell*)sender.superview.superview;
到这里
SliderCell *theAnimalCell =(SliderCell*)sender.superview.superview.superview;
我想如果您想同时支持 iOS 7 和 iOS 6,您需要在尝试获取自定义单元格之前进行检查。
嗯,就是这样,希望这对那里的人有用。
西蒙
【讨论】:
【参考方案2】:做出这样的条件。
AddTOcartCell *cell = ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) ? (AddTOcartCell*)textField.superview.superview.superview : (AddTOcartCell*)textField.superview.superview;
cell.btnUpdate.hidden=FALSE;
NSLog(@"Call Y%f",cell.frame.origin.y);
[tblProduct setContentOffset:CGPointMake(0,cell.frame.origin.y) animated:YES];
【讨论】:
【参考方案3】:是的,ios 7 中的原因是它从这里返回 UITableViewCellContentView
:-
settingCustomCell *theAnimalCell =(settingCustomCell*)[[sender superview]superview];
所以要在 ios 7 中获取 UITableViewCell
,只需将您的代码更改为:-
settingCustomCell *theAnimalCell =(settingCustomCell*)[[sender superview]superview]superview];
注意:-但是要忽略任何冲突,请根据 ios 条件设置这两个条件。
【讨论】:
以上是关于带有标签和 UISlider 的自定义 UITableViewCell 在 ios 7 的 6 次崩溃中运行良好。 ?? UITableViewCellScrollView?的主要内容,如果未能解决你的问题,请参考以下文章