为什么我不能在iPhone SDK中访问CALayer的visibleRect属性?

Tha*_*nks 2 iphone calayer

我这样做有困难:

CALayer *myLayer = myUIImageView.layer; //works, no error from compiler
CGRect visRect = myLayer.visibleRect; //fat error, see below
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

错误:请求成员'visibleRect'不是结构或联合

但是文件说:

visibleRect在其自己的坐标空间中返回接收器的可见区域.(只读)@property(readonly)CGRect visibleRect

我已经包含了QuartzCore.framework,CoreGraphics.framework,UIKit.framework,Foundation.framework.

所以,如果它返回一个CGRect,为什么它不起作用?任何的想法?

ama*_*ttn 9

我99%肯定你错过了import语句.仅仅在项目中包含框架是不够的.

我刚刚在一个全新的项目中尝试了这个,它按预期工作.以下是我添加到ViewController的内容.

#import <QuartzCore/QuartzCore.h>
Run Code Online (Sandbox Code Playgroud)

...

- (void)viewDidLoad
{
    [super viewDidLoad];
    CALayer *test_layer = self.view.layer;
    CGRect test_rect = test_layer.visibleRect;
    NSLog(@"%f, %f", test_rect.origin.x, 
          test_rect.size.width);
}
Run Code Online (Sandbox Code Playgroud)

输出是:

2009-04-21 17:53:55.999 Throwaway[72422:20b] 0.000000, 320.000000
Run Code Online (Sandbox Code Playgroud)