我从一个方法内的 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);
}
当我需要视图的真正可见矩形时,我必须考虑一些特别的事情吗?实际上我认为它总是会被超级视图剪裁,因此该方法返回真正的可见矩形尺寸。
但是当我将 UIImageView 逐步向右移动时,它仍然保持在 300.0 宽度。即使它的一部分从窗口中消失。