1
我正在做一些關於聊天室的事情;我使用uitableview
來顯示聊天記錄,並使用uiview
作爲文本輸入的容器&表情符號。 uitableview
有約束0底部到文字輸入&表情符號視圖;當我展開文本輸入&表情視圖的高度約束時,將更新uitableview
的框架,但更改操作未在代碼中觸發。當我使用自動佈局約束來更新其幀高時,IOS UITableView幀更改操作不會觸發
我曾嘗試下面的代碼,觀察變化,但它不工作。
-(void)didChangeValueForKey:(NSString *)key
-(void)willChangeValueForKey:(NSString *)key
[_tableView.layer addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil\];
是的,我認爲是的,更新幀值通過私有屬性不是setter方法。我得到一個鉤子 –
是的,我認爲是這樣,更新幀值通過私有屬性而不是setter方法。我得到一個鉤子方法在我改變約束的地方被調用,它工作。但如何我可以跟蹤幀更改,如果我自定義tableview? –
@JaxHuang在你的案例中'擴展文本輸入和表情視圖的高度約束'是tableView'frame'變化的相關事件,並且你肯定有控制權。在那裏,您可以使用通知或委託來觸發其他事件以執行後續步驟。 –