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

时间:2009-04-22 13:02:39

标签: iphone calayer

我从方法中的UIImageView获取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宽度。即使它的一部分出了窗外。

1 个答案:

答案 0 :(得分:3)

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