2013-06-29 20 views
0

我有一個UITableView有多個部分,與自定義UITableViewCell子類填充表。在這些UITableViewCell子類中,我實現了layoutSubviews來自定義標籤的位置等。UITableView可見單元格不顯示子視圖當看到出現

除了加載視圖時的第一批可見單元格之外,所有單元格的子視圖都在進行調整。它們與故事板中的佈局完全相同,這不是我想要的。例如:

http://i.stack.imgur.com/L5GJh.png

注:綠色和橙色邊框是一種視覺幫助,看是否標籤被調整。

一旦滾動,出現的所有新單元格的子視圖都會按照我編程在layoutSubviews中的方式進行設置。就第一批可見光單元而言,我可以將它們滾動到屏幕外,然後重新打開,然後完成子視圖佈局。例如:

http://i.stack.imgur.com/jgjch.png

tableView: cellForRowAtIndexPath:,我稱之爲[cell layoutIfNeeded]該方法返回的單元格之前。如果我將其更改爲[cell layoutSubviews],則會出現相反的情況,第一批可見單元格應按照它們的佈局排列,但所有滾動時加載的單元格佈局不正確。

我試圖把[cell layoutIfNeeded]放在[tableview: willDisplayCell:之內,但沒有運氣。有想法該怎麼解決這個嗎?

在此先感謝!

回答

0

如果您在啓用了自動佈局的情況下在佈局代碼中設置框架,則會看到這種行爲。這不起作用。自動佈局系統負責設置幀並覆蓋您設置的值。

您應該使用約束指定佈局或關閉「自動佈局」。

+0

哇。你真了不起。我關閉了自動佈局,並使用自動調整大小來調整一切,它的工作原理!我想現在我的問題是使用自動佈局的優點是什麼?非常感謝! – AUSTOOO

相關問題