2017-07-25 60 views
2

我遇到了一個非常奇怪的現象。我在我的tableview中使用了AutomaticDimension函數,並且出於某種奇怪的原因,它適用於除3之外的所有單元格。我所有的單元格都具有完全相同的約束,這是奇怪的部分。我試圖改變對單元格的約束,但似乎它們被忽略。任何見解都會很棒。我一定要在viewdidload中調用auto維度函數。UITableView上的某些單元格不會自動調整大小

override func viewDidLoad() { 
    super.viewDidLoad() 


    self.TableView.dataSource = self 

    TableView.estimatedRowHeight = 200.0 
    TableView.rowHeight = UITableViewAutomaticDimension 
} 

這裏是不工作的一類:

class foursleepCell: UITableViewCell { 
@IBOutlet weak var foursleepLabel: UILabel! 
@IBOutlet weak var foursleepScale: UISegmentedControl! 

var delegate: foursleepCellToController? 

@IBAction func foursleepValueChanged(_ sender: UISegmentedControl) { 
    if let delegate = delegate { 
     let indexPath = delegate.indexOfChangedfoursleepCell(at: self) 
     delegate.savefoursleepCellResponse(at: indexPath, response: foursleepScale.selectedSegmentIndex) 
    } 
} 
} 

附上約束和輸出的圖像:

Label Constraints

Segmented Control Constraints

Actual Output

Working Output

+0

我一直有可能是相同的問題(問幾天前類似的問題,但沒有得到答案)。根據你的圖片,一些約束在運行時不存在。我猜這是問題的根源 - 沒有從上到下的限制,自動調整大小無法工作。 – John

+0

你可以嘗試設置estimatedRowHeight = 40嗎? –

+0

我試過了。沒有修復任何東西 –

回答

0

我不認爲有什麼不對您嘗試設置單元格自動調整的方式,它僅僅是事實所必需的,頂部至底部約束調整大小不會在運行時出現。顯然這是Xcode中有時可能發生的事情 - 嘗試創建一個新的表格視圖單元格,並從頭開始重新設置所有視圖和約束。將表格視圖單元格複製並粘貼到一個新的單元格中並從副本中進行工作並沒有爲我修復 - 它的行爲完全相同。但設置它新鮮的伎倆。

相關問題