我有一个UISlider
用于缩放imageView
(而不是UIPinchGesture
)而我正在使用UIRotationGesture
,它们都可以独立工作。无需旋转即可缩放手势很好!但是一旦我执行旋转并且它们放大或缩小imageview
,它就会变得很奇怪,因为它会失去旋转比例。(这就是我猜的!)
我该如何解决这个问题?
我很不高兴这个数学的东西挣扎着这几天,我搜索了论坛无法找到解决方案。请帮助我:)。
对于缩放 :(这里我不处理变换,因为我不确定)
-(void)scale:(UISlider *)sender
{
float sliderValue = [sender value];
CGRect newFrame = placeRing.frame;
newFrame.size = CGSizeMake(sliderValue, sliderValue);
placeRing.frame = newFrame;
}
轮换:
- (void)twoFingersRotate:(UIRotationGestureRecognizer *)recognizer
{
isRotated = TRUE;
if ([recognizer state] == UIGestureRecognizerStateBegan || [recognizer state] == UIGestureRecognizerStateChanged) {
rotation= recognizer.rotation;
rotatedTransform = CGAffineTransformRotate([placeRing transform], [recognizer rotation]);
placeRing.transform = rotatedTransform;
[recognizer setRotation:0];
}
}
答案 0 :(得分:1)
旋转应用变换,该变量使您用于调整视图大小的帧属性无效。使用边界和中心属性进行缩放。
中的警告框-(void)scale:(UISlider *)sender
{
float sliderValue = [sender value];
placeRing.bounds = CGRectMake(0, 0, sliderValue, sliderValue);
}