uiview宽度为零

时间:2011-07-03 12:45:47

标签: iphone ipad uiview

我使用以下代码为我的uiview添加了一个uigesture

UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scale:)];
[pinchRecognizer setDelegate:self];
[holderView addGestureRecognizer:pinchRecognizer];
[pinchRecognizer release];

和scalling的代码是

    if([(UIPinchGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded) {

        lastScale = 1.0;
        return;
    }



    CGFloat scale = 1.0 - (lastScale - [(UIPinchGestureRecognizer*)sender scale]);

    CGAffineTransform currentTransform = [(UIPinchGestureRecognizer*)sender view].transform;
    CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, scale, scale);

    [[(UIPinchGestureRecognizer*)sender view] setTransform:newTransform];

    lastScale = [(UIPinchGestureRecognizer*)sender scale];

    OldTransform = newTransform;

    OldCenter = [(UIPinchGestureRecognizer*)sender view].center;

缩放前的问题我可以得到holdview的宽度和高度但是在缩放后它返回零

我使用以下代码显示

NSLog(@“矩形%f,%f,%f,%f”,holderView.frame.origin.x,holderView.frame.origin.y,holderView.bounds.size.width,holderView.bounds。 size.height);

另一个问题是当我在其上面添加子视图时,所有值都从holderview返回原点的大小,...变为零 任何解决这个问题的建议

1 个答案:

答案 0 :(得分:0)

设置视图的变换不会更改其frame属性的值。因此,即使帧报告宽度为100,由于变换,它可能在视觉上为50,或者其他任何东西。

你的帧宽度得到0的原因可能是因为你在某个时候将它设置为0,或者还没有设置它。您需要提供默认大小才能使您的视图可见。