2014-04-04 22 views
3

我已將UITableView添加爲子視圖UITableviewCell。 在iOS 6中,當我滾動內部tableView並達到其結束時,主表視圖變爲滾動。 在iOS 7中,它不再工作。如果我在內部表格視圖中滾動,它不會將此滾動事件傳遞給父級表視圖。在UITableviewCell中嵌入的UITableView中滾動(ios7)

有誰知道如何簡單地修復它,沒有手動從內部tableview到父級傳輸事件?

附加信息: 我找到可能的原因problem。但是如何解決這個問題。

+1

你爲什麼要這樣做?不建議在TableViewCell中添加TableView。 –

+0

我需要顯示不適合單元格大小的內容。 – abagmut

+0

您是否嘗試過使用UICollectionView而不是UITableView? – Abizern

回答

3

所以,我找到了一個解決方案。

據@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; 
} 

它幫助。

+2

如果有人沒有得到它: 您嵌入的tableview實例必須實現shouldRecognizeSimultaneouslyWithGestureRecognizer。您可以複製上面的代碼來計算返回值,或者您可以返回!(self.contentOffset.y> 0)。希望能幫助任何人。 –

0

我不認爲這是關於用戶易用性的明智解決方案。你應該使用Master-Detail Strategy

UINavigationController設置爲rootViewController,然後按下您的主號碼TableViewController,在選擇每個單元格時,您可以推入新的TableViewController,其中包含所選單元格項目的詳細數據。

編輯

如果你真的想添加一個的TableView裏面TableViewCell然後,請按照link 1link 2

+0

即使你對MVC一致性絕對正確,嵌套的'UITableView's是一個可接受的設計模式。它確實增加了編碼器在內存和性能優化方面的開銷,但如果做得對,會產生一些非常好的結果。 – n00bProgrammer

+0

在TableViewCell中處理TableView的委託和數據源既不是小菜一碟... :)我認爲使用我的策略會降低複雜性。 –

+0

@abagmut我已根據您的要求編輯了我的答案。檢查它是否有幫助。 –

相關問題