簡體   English   中英

UITableView-調整框架大小並滾動到行

[英]UITableView - resizing frame and scrolling to row

我有一個UITableView ,我需要顯示一個選擇器,因此我想縮短表框架的高度,同時滾動到該行以使其可見。

我這樣做:添加400像素的底部邊距(通過將底部約束距離設置為400)並滾動到該行

bottomConstraint.constant = 400
tableview.scrollToRow(at: currentIndexPath, at: .bottom, animated: true)

這兩個命令都是自己工作的(我測試過)。 但是結果是縮短了表格,並且所選行沒有出現在視線中(例如,如果該行是最后一行)。

顯然發生的事情是在實際更新約束之前已處理滾動,因此,如果在更改約束之前該行可見,則在縮短表時不會滾動。

有任何想法嗎?

設置約束后,需要調用self.view.layoutIfNeeded() 另一個選擇是您可以設置約束變化的動畫,並在完成處理程序中調用tableView.scroll... ,盡管設置約束的動畫方法是設置常量,然后無論如何layoutIfNeeded在動畫塊中調用layoutIfNeeded ,所以本質上是相同的除了視覺和時間方面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM