2016-12-25 66 views
0

我想重新創建我的個人應用程序的Spotify應用程序的行爲。IOS - 如何使用自動佈局具有可滾動的桌面標題

這是一種表視圖,但標題視圖是dynanically大小。默認情況下,標題具有最大尺寸,但是當用戶動態滾動tableview上方時,headerview會鬆動高度,直到保持其最小尺寸。標題視圖應始終保持可見。

這裏表示我期待重現行爲的GIF:http://giftrending.com/public/upload/gifs/14827016661482701665.gif

通過我使用的自動佈局與故事板設立我的意見的方式。

謝謝你的幫助!

+0

如果可能,你可以發佈一個顯示整個動畫的gif,很難確定使用圖像前後的方法!但很可能這種行爲可以通過使用具有適當動畫的「UITableViewCell」和「UIView」來複制,具體取決於用戶滾動的數量! – Rikh

+0

顯示代碼,如何確定高度。 – iphonic

+0

Spotify應用程序可能使用collectionview。 – Groot

回答

1

這不是一個優化的代碼,但你可以嘗試這樣的事情。

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ 
    return headerHeight; 
} 
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ 
    CGFloat maxHeaderHeight = 400; 
    CGFloat minHeaderHeight = 40; 
    if (self.lastContentOffset > scrollView.contentOffset.y){ 
     // scrolling down 
     if(headerHeight < maxHeaderHeight){ 
      headerHeight += scrollView.contentOffset.y; 
     } 
     headerHeight = MIN(headerHeight, maxHeaderHeight); 
    }else if (self.lastContentOffset < scrollView.contentOffset.y){ 
     // scrolling up 
     if (headerHeight > minHeaderHeight) { 
      headerHeight -= scrollView.contentOffset.y; 
     } 
     headerHeight = MAX(headerHeight, minHeaderHeight); 
    } 
    self.lastContentOffset = scrollView.contentOffset.y; 
    [self.tableView reloadData]; 

} 
+0

謝謝你,我做了一些測試,它的工作有時但並非總是如此。確實有時,特別是在桌子的極端。有一個「返回」效果,不會被你的算法評估。我繼續我的測試^^ –