我使用以下代码为我的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返回原点的大小,...变为零 任何解决这个问题的建议
答案 0 :(得分:0)
设置视图的变换不会更改其frame属性的值。因此,即使帧报告宽度为100,由于变换,它可能在视觉上为50,或者其他任何东西。
你的帧宽度得到0的原因可能是因为你在某个时候将它设置为0,或者还没有设置它。您需要提供默认大小才能使您的视图可见。