ビューを右に移動するために数回呼び出されるメソッド内の 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);
}
ビューの真の可視 Rectangle が必要なときに、考えなければならない特別なことはありますか? 実際には、スーパービューによって常にクリップされると思っていたので、そのメソッドは実際に表示されている長方形の寸法を返します。
しかし、UIImageView を少しずつ右に移動すると、幅は 300.0 のままです。その一部が窓の外に出ても。