2009-04-22 9 views
0

私はメソッド内でUIImageViewからvisibleRectを取得します。これは、そのビューを右に移動するために何回か呼び出されます。画面から部分的に外に出るとすぐに、私はvisibleRectが小さくなることを期待しています。しかし、それはしません。CALayerのvisibleRectメソッドは、画面の半分を画面外に移動しても、私のUIImageViewの幅が常に同じになるのはなぜですか?

-(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の幅にとどまります。たとえそれの一部が窓から外れても。

答えて

3

表示される矩形を変更する唯一のクリッピングは、含むスクロールレイヤーからのものです。

+0

ありがとうございました。私はAppleがなぜこのクールな方法がとても有用だと言っているのかとすぐに言及していないのだろうかと思う) – Thanks

+0

私は毎日アップルと同じ考えがある;) – Alex

関連する問題