繁体   English   中英

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

[英]Why can't I access the visibleRect Property of an CALayer in iPhone SDK?

我这样做有困难:

CALayer *myLayer = myUIImageView.layer; //works, no error from compiler
CGRect visRect = myLayer.visibleRect; //fat error, see below

我得到的错误是:

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

但是文件说:

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

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

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

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

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

#import <QuartzCore/QuartzCore.h>

...

- (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);
}

输出是:

2009-04-21 17:53:55.999 Throwaway[72422:20b] 0.000000, 320.000000

您的代码看起来正确。 你没有保留任何可能有危险的东西,但技术上并没有错。

以下消息通常意味着myLayer出了问题。

error: request for member 'visibleRect' in something not a structure or union

你在两行代码之间做了什么吗?

检查myLayer对象,确保它是正确的。 另外,确认myUIImageView已初始化,而不是nil。

另外,通过调用[myLayer visibleRect];尝试绕过属性[myLayer visibleRect];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM