2015-05-28 51 views
2

因此,我正在iOS上構建一個需要與Instagrams(適用於iOS)非常相似的配置文件視圖的應用程序。我的問題是做這件事的最佳方式是什麼 - Instagram的個人資料屏幕由個人視圖和照片,統計數據等組成,還有一個控制欄等標籤欄,允許您在個人視圖下切換多個視圖。這些視圖是表視圖或集合視圖。我可以在不同的表格視圖/集合視圖之間切換底部的視圖,但是Instagram已經將它設置在整個配置文件屏幕作爲一個滾動視圖或表格視圖滾動的位置。我該如何實現這一目標?或者什麼纔是最好的方法來完成這項工作呢?構建一個像Instagram一樣的配置文件屏幕

任何幫助將不勝感激。提前致謝!

+1

嘗試添加滾動視圖內的所有內容。此外,現在你是如何在SO中提出問題的。你的問題不是編程相關的,它與設計有關,而且你還沒有顯示你已經嘗試過,並且沒有工作,你需要幫助。 –

+0

我知道這不是一個合適的問題。我試過把所有東西都放到單個滾動視圖中。問題是在滾動視圖中有一個表視圖和/或集合視圖會發生奇怪的事情,因爲滾動視圖都應該發生在滾動視圖上而不是表視圖中。但是,那麼,我們如何根據表視圖的完整高度+個人視圖來確定滾動視圖的內容大小? @XCodeMonkey –

+0

從我看到的instagram只是一個表格視圖與自定義單元格視圖和一堆標籤,並在所有它是一個標籤欄應用程序設計。你將用戶的名字作爲標題刷新到左邊,然後你有一個圖像,他們在一個單元格下發布圖像,並且作爲你喜歡的部分的頁腳。我建議你將自定義單元格表視圖放在一起,然後播放大小和內容,直到獲得所需內容。 –

回答

3

您必須將整個視圖添加到滾動視圖

禁用了具有多個帖子的tableview的滾動。

之後,根據數組中的行數或計數來更改tableview的框架。 贊, 您有10個帖子要顯示在表格視圖中。和行爲的tableview的高度爲100 所以,

tableview.frame = CGRectMake(tableview.frame.origin.x, tableview.frame.origin.y, tableview.frame.size.width, 100*10); 

之後,改變滾動視圖的內容大小。

myScrollView.contentSize = CGSizeMake(myScrollView.frame.size.height, 
            tableview.frame.origin.y + tableview.frame.size.height); 

- 或 -

如果您的TableView的高度與每一個細胞發生變化,那麼就使用下面一行: -

myScrollView.contentSize = CGSizeMake(myScrollView.frame.size.height, 
            tableview.frame.origin.y + tableView.contentSize.height); 

然後你得到了相同的觀點作爲配置文件Instagram的視圖。

不要忘記禁用滾動的tableview。

我相信,這個解決方案可以幫助你。

+0

當我將此代碼添加到我的項目中所有用戶界面不工作。例如:UIButton不可點擊。滾動視圖視圖不在單元格中滾動。 在第一個兩個單元沒有問題,但其他所有單元格不工作,我認爲這個答案可能是錯誤的。 –

+0

其工作正常..!但可能是你的問題來自其他觀點。意思是我認爲你的tableview或scrollview有一個視圖。請再試一次。我相信,它可以幫助你。 –

+0

我嘗試我的代碼其他視圖控制器和相同的用戶界面視圖。我將uiview複製到scrollview中,並將此代碼UI元素的框架大小設置爲不可點擊。我調試與我的tableview或scrollview沒有看法。我嘗試tableView.setNeedsLayout() tableView.setNeedsDisplay() 但不工作,你應該檢查這個鏈接 - > 的http:// CL .ly/2A1P04401m31 –

0

在UIScrollView中包裝所有的東西可能是一個有點沉重的解決方案,您將來可能會遇到性能問題。您可以添加用戶的配置文件信息和製表符切換到您的表視圖的標題視圖,並點擊切換數據源。

我也遇到過類似的項目需求,問題在於性能。當您嘗試在滾動的自動播放視頻中重現instagram行爲時... UIScrollView方法可能會變得混亂。

您也可以考慮使用AsyncDisplayKit集成來實現卓越的性能。

謝謝,謝爾蓋

相關問題