我已將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