簡體   English   中英

UITableViewCell內的程序化Autolayout更改僅在方向更改后更新

[英]Programmatic Autolayout changes inside UITableViewCell updated only after orientation change

我有一個UITableView具有自動行高和自定義UITableViewCell UITableViewCell內部,我首先添加一些帶有程序化Autolayout約束的UIButton 它們完全按照我的要求定位。 然后,在3秒后( NSTimer ),我刪除所有那些UIButton並再次重新添加不同數量的UIButton (例如,最初我有4個UIButtons ,3秒后,我刪除了4個UIButton並添加了3個不同的UIButton

最初

原來 3秒后

3秒后

后旋轉:

在此輸入圖像描述

為什么會這樣? 我沒有看到任何Autolayout警告。 此外,在方向更改后,一切都正確定位。 什么是需要改變方向? 我怎樣才能手動強制執行此操作?(僅為此重新加載tableview似乎太多了)

PS:我嘗試使用setNeedsUpdateConstraintslayoutIfNeededlayoutSubviews但無濟於事。

這是UITableViewCell代碼: http//pastebin.com/TcHUXgDU (添加了一個不污染這個空間的pastebin)但基本上,我在tableview子類中有一個configure:方法,我在其包含UITableViewcellForRowAtIndexPath中調用它。 此方法添加了這些約束。 此外,在計時器觸發后,調用相同的代碼(在另一個函數中),除了我添加的項目數與初始項目數不同。

這是我的UITableViewCell布局:(只有頂部,底部,前導,尾隨約束已添加到UIView“Outerview”)

uitableviewcell布局

您需要重新加載UITableView,這將重新計算單元格的高度

暫無
暫無

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

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