IOS 当我使用自动布局约束更新其框架高度时,UITableView 框架更改操作未触发
IOS UITableView frame change action not firing when I use auto layout constraint to update its frame height
我正在做一些关于聊天室的事情;我使用 uitableview
来显示聊天记录,并使用 uiview
作为文本输入和表情符号的容器。 uitableview
对文本输入和表情符号视图的底部约束为 0;当我扩展文本输入和表情符号视图的高度约束时,uitableview
的框架会更新,但代码中不会触发更改操作。
我尝试了以下代码来观察变化,但它不起作用。
-(void)didChangeValueForKey:(NSString *)key
-(void)willChangeValueForKey:(NSString *)key
[_tableView.layer addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil\];
我也试过一次跟踪本机属性的变化。但我认为只有当通过 setter 方法 设置属性 时才会触发此观察者。喜欢,
self.myProperty = newValue;
如果你使用,
_myProperty = newValue;
您的观察者不会在键值观察中得到任何变化。
对于 tableView
这样的原生元素,我们不知道内部实现。要跟踪更改,您必须自定义 tableView
.
我正在做一些关于聊天室的事情;我使用 uitableview
来显示聊天记录,并使用 uiview
作为文本输入和表情符号的容器。 uitableview
对文本输入和表情符号视图的底部约束为 0;当我扩展文本输入和表情符号视图的高度约束时,uitableview
的框架会更新,但代码中不会触发更改操作。
我尝试了以下代码来观察变化,但它不起作用。
-(void)didChangeValueForKey:(NSString *)key
-(void)willChangeValueForKey:(NSString *)key
[_tableView.layer addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil\];
我也试过一次跟踪本机属性的变化。但我认为只有当通过 setter 方法 设置属性 时才会触发此观察者。喜欢,
self.myProperty = newValue;
如果你使用,
_myProperty = newValue;
您的观察者不会在键值观察中得到任何变化。
对于 tableView
这样的原生元素,我们不知道内部实现。要跟踪更改,您必须自定义 tableView
.