如何在iOS上侦听视图的帧属性
我有一个观点,我添加了这样一个观察者: 在observer方法中,我得到了新值:如何在iOS上侦听视图的帧属性,ios,objective-c,Ios,Objective C,我有一个观点,我添加了这样一个观察者: 在observer方法中,我得到了新值: - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context { if ([keyPath isEqualToString:@"frame"]) { NS
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context {
if ([keyPath isEqualToString:@"frame"]) {
NSLog(@"%@", change[@"new"]);
}
}
-(void)observeValueForKeyPath:(NSString*)对象的键路径:(id)对象更改:(NSDictionary*)更改上下文:(void*)上下文{
if([keyPath isEqualToString:@“frame”]){
NSLog(@“%@”,更改[@“新建”);
}
}
日志是NSRect:{{100100},{100100}
。
问题是我得到的值类型是NSRect
,如何将其转换为CGRect
在UIKit库中,没有名为
NSRect
的类型通过以下方式将NSRect
转换为CGRect
:
CGRect NSRectToCGRect(NSRect nsrect);
注:以上仅适用于OSX
对于iOS:CGRect rect=[change[@“new”]CGRectValue]代码>//复制自Rob的答案
阅读。通过以下方式将NSRect
转换为CGRect
:
CGRect NSRectToCGRect(NSRect nsrect);
注:以上仅适用于OSX
对于iOS:CGRect rect=[change[@“new”]CGRectValue]代码>//复制自Rob的答案
阅读。NSRect
和CGRect
在OS X上是相同的。您可以在OS X SDK中的NSGeometry.h
中找到:
typedef CGRect NSRect;
在iOS上,NSRect
不存在,但格式化功能在两种平台上都是相同的,它会打印NSRect
。您可以获得如下所示的CGRect
值:
CGRect rect = [change[@"new"] CGRectValue];
NSRect
和CGRect
在OS X上是相同的。您可以在OS X SDK的NSGeometry.h
中找到这一点:
typedef CGRect NSRect;
在iOS上,NSRect
不存在,但格式化功能在两种平台上都是相同的,它会打印NSRect
。您可以获得如下所示的CGRect
值:
CGRect rect = [change[@"new"] CGRectValue];
谢谢你纠正我,我的答案不正确,但得到+1。我不知道IOS中缺少nsrecttogrect。感谢您的更正,我的答案不正确,但得到了+1。我不知道iOS中缺少nsrecttogrect