2017-08-06 47 views
0

如果將預覽設備設置爲具有屏幕寬度的iPhone 7,我在我的iPhone 6上運行我的應用程序,其中屏幕寬度爲414點375分,第一次加載表格時,我在viewdidload中打印出了表格的大小,寬度爲414,但表格單元格的寬度都是375,在我上下滾動後,寬度變爲414.在多個UITableViewController中進行測試,結果都一樣。表格視圖單元格大小取決於故事板中的預覽設備大小

我的問題是:

爲什麼取決於預覽設備尺寸表視圖單元格的大小?

如何使單元格在第一次加載時具有正確的大小?

tableView.layoutIfNeeded(),tableView.layoutSubViews()不起作用。

回答

1

的tableview中有正確的尺寸414(我的設備大小),但不知何故,單元尺寸爲模擬指標的大小,研究的幾個月後,這是我想出了答案:

在我的單元類,重寫awakeFromNib(),將frame.size.width設置爲UIScreen.main.bounds.width,然後調用layoutIfNeed()

0

每次從Storyboard加載視圖時,它最初的大小都是故事板中指定的大小,然後當它被添加到視圖層次結構中時,其框架將被調整(通過Autolayout或您的自定義代碼) 。所以在你的情況下,當一個單元格首先從故事板加載時,它將有414個點寬(假設你的tableView與視圖控制器具有相同的寬度),但是當它被放入實際的視圖層次結構中時,它將相應地調整大小(375pt,這等於你的tableview的寬度)。

相關問題