![](/img/trans.png)
[英]Why does the visibleRect method of CALayer give me always the same width for my UIImageView even if I move it half out of the screen?
[英]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.