Iphone 为什么CALayer的visibleRect方法总是为UIImageView提供相同的宽度,即使我将其移出屏幕的一半?

Iphone 为什么CALayer的visibleRect方法总是为UIImageView提供相同的宽度,即使我将其移出屏幕的一半?,iphone,calayer,Iphone,Calayer,我从一个方法中的UIImageView获取visibleRect,它被多次调用以将该视图向右移动。一旦visibleRect部分脱离屏幕,我希望visibleRect会变小。但事实并非如此 -(IBAction)moveToRight:(id)sender { CGRect frameRect = myUIImageView.frame; //that's an image I use in background of other views CALayer *myLayer =

我从一个方法中的UIImageView获取visibleRect,它被多次调用以将该视图向右移动。一旦visibleRect部分脱离屏幕,我希望visibleRect会变小。但事实并非如此

-(IBAction)moveToRight:(id)sender {
    CGRect frameRect = myUIImageView.frame; //that's an image I use in background of other views
    CALayer *myLayer = [myUIImageView layer];
    CGRect visRect = [myLayer visibleRect];

    NSLog(@"%f, %f", visRect.origin.x, visRect.size.width); //width is always 300.0

    CGPoint rectPoint = frameRect.origin;
    CGFloat newXPos = rectPoint.x + 10.5f;
    myUIImageView.frame = CGRectMake(newXPos, 0.0f, myUIImageView.frame.size.width, myUIImageView.frame.size.height);
}
当我需要真实可见的矩形视图时,有什么特别的事情我必须考虑吗?实际上,我认为它将始终被superview剪裁,因此该方法返回真正可见的矩形尺寸


但当我将UIImageView逐步向右移动时,它仍保持300.0的宽度。即使它的一部分出了窗口。

唯一更改可见矩形的剪辑来自包含滚动层。

唯一更改可见矩形的剪辑来自包含滚动层。

谢谢。我想知道为什么苹果没有马上提到它,他们说这种很酷的方法非常有用;)我对苹果每天都有同样的想法;)谢谢我想知道为什么苹果没有马上提到它,他们说这种很酷的方法非常有用;)我对苹果每天都有同样的想法;)