[英]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.