gpt4 book ai didi

ios - 如何在 iOS 上监听 View 的框架属性

转载 作者:行者123 更新时间:2023-11-28 18:55:21 25 4
gpt4 key购买 nike

我有一个 View ,我添加了一个这样的观察者:

_aView = [UIView new];
[_aView addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil];
_aView.frame = CGRectMake(100, 100, 100, 100);

在观察者方法中我得到了新值:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context {
if ([keyPath isEqualToString:@"frame"]) {
NSLog(@"%@", change[@"new"]);
}
}

日志是 NSRect: {{100, 100}, {100, 100}}。问题是我得到的值类型是NSRect,如何将它转换成CGRect

在 UIKit 库中没有名为 NSRect 的类型

最佳答案

NSRectCGRect 在 OS X 上是相同的。您可以在 OS X SDK 的 NSGeometry.h 中找到它:

typedef CGRect NSRect;

在 iOS 上,NSRect 不存在,但格式化功能在两个平台上是相同的,并且无论如何都会打印 NSRect。您可以像这样获取 CGRect 值:

CGRect rect = [change[@"new"] CGRectValue];

关于ios - 如何在 iOS 上监听 View 的框架属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34524964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com