我已将UITableView
添加为子视图UITableviewCell
。 在iOS 6中,当我滚动内部tableView
并达到其结束时,主表视图变为滚动。 在iOS 7中,它不再工作。如果我在内部表格视图中滚动,它不会将此滚动事件传递给父级表视图。在UITableviewCell中嵌入的UITableView中滚动(ios7)
有谁知道如何简单地修复它,没有手动从内部tableview到父级传输事件?
附加信息: 我找到可能的原因problem。但是如何解决这个问题。
我已将UITableView
添加为子视图UITableviewCell
。 在iOS 6中,当我滚动内部tableView
并达到其结束时,主表视图变为滚动。 在iOS 7中,它不再工作。如果我在内部表格视图中滚动,它不会将此滚动事件传递给父级表视图。在UITableviewCell中嵌入的UITableView中滚动(ios7)
有谁知道如何简单地修复它,没有手动从内部tableview到父级传输事件?
附加信息: 我找到可能的原因problem。但是如何解决这个问题。
所以,我找到了一个解决方案。
据@FaisalAli的提示,我实现的委托方法:
- (BOOL) gestureRecognizer: (UIGestureRecognizer*)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer: (UIGestureRecognizer*)otherGestureRecognizer
{
if ([gestureRecognizer isKindOfClass: [UIPanGestureRecognizer class]])
{
if ([((UIPanGestureRecognizer*)gestureRecognizer) velocityInView: self].y > 0)
{
// Up
if (self.contentOffset.y <= 0)
{
self.bounces = NO;
return YES;
}
}
else
{
// Down
if (self.contentOffset.y + self.height >= self.contentSize.height)
{
self.bounces = NO;
return YES;
}
}
}
self.bounces = YES;
return NO;
}
它帮助。
如果有人没有得到它: 您嵌入的tableview实例必须实现shouldRecognizeSimultaneouslyWithGestureRecognizer。您可以复制上面的代码来计算返回值,或者您可以返回!(self.contentOffset.y> 0)。希望能帮助任何人。 –
我不认为这是关于用户易用性的明智解决方案。你应该使用Master-Detail Strategy。
将UINavigationController
设置为rootViewController,然后按下您的主号码TableViewController
,在选择每个单元格时,您可以推入新的TableViewController
,其中包含所选单元格项目的详细数据。
编辑
即使你对MVC一致性绝对正确,嵌套的'UITableView's是一个可接受的设计模式。它确实增加了编码器在内存和性能优化方面的开销,但如果做得对,会产生一些非常好的结果。 – n00bProgrammer
在TableViewCell中处理TableView的委托和数据源既不是小菜一碟... :)我认为使用我的策略会降低复杂性。 –
@abagmut我已根据您的要求编辑了我的答案。检查它是否有帮助。 –
你为什么要这样做?不建议在TableViewCell中添加TableView。 –
我需要显示不适合单元格大小的内容。 – abagmut
您是否尝试过使用UICollectionView而不是UITableView? – Abizern