相关疑难解决方法(0)

从CGAffineTransform中查找比例值

好的,所以我意识到我可以从图层的CATransform3D中找到比例值,如下所示:

 float scale = [[layer valueForKeyPath: @"transform.scale"] floatValue];
Run Code Online (Sandbox Code Playgroud)

但我不能为我的生活弄清楚如何从CGAffineTransform中找到比例值.比方说我有这个名为"cameraTransform"的CGAffineTransform:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
CGAffineTransform *cameraTransform =  imagePicker.cameraViewTransform;
Run Code Online (Sandbox Code Playgroud)

现在如何从cameraTransform获取比例值?

iphone core-graphics objective-c ipad ios

8
推荐指数
2
解决办法
5298
查看次数

如何使用UIPinchGestureRecognizer设置最小和最大缩放比例

我想放大并缩小图像视图,我不想使用UIScrollView.所以为此我使用了UIPinchGestureRecognizer,这是我的代码 -

[recognizer view].transform = CGAffineTransformScale([[recognizer view] transform], [recognizer scale], [recognizer scale]);
recognizer.scale = 1;
Run Code Online (Sandbox Code Playgroud)

这适用于放大和缩小.但问题是我想放大和缩小特定比例,如在UIScrollView中我们可以设置maxZoom和minZoom.我找不到任何解决方案,每个关于UIPinchGestureRecognizer的教程都只描述相同的代码.

iphone objective-c ios5 uipinchgesturerecognizer

5
推荐指数
1
解决办法
8469
查看次数

设置UIView缩放变换而不影响其他变换

我有一个UIView,我在触摸时缩小,并在触摸结束或取消时缩小.

我一直在扩展这样的观点

缩小:

CGAffineTransform transform = CGAffineTransformMakeScale(0.95, 0.95);
self.transform = transform;
Run Code Online (Sandbox Code Playgroud)

放大:

CGAffineTransform transform = CGAffineTransformMakeScale(1.0, 1.0);
self.transform = transform;
Run Code Online (Sandbox Code Playgroud)

这不会保留任何其他变换.我知道我可以用它来保存旧的变换:

缩小:

CGAffineTransform transform = CGAffineTransformScale(self.transform, 0.95, 0.95);
self.transform = transform;
Run Code Online (Sandbox Code Playgroud)

放大:

CGAffineTransform transform = CGAffineTransformScale(self.transform, 1.0, 1.0);
self.transform = transform;
Run Code Online (Sandbox Code Playgroud)

但是,当然这里扩大规模没有影响 - 此外还有可能应用累积缩小动画.基本上我想要一种绝对应用比例变换而不影响任何其他变换的方法.有没有办法做到这一点?我不认为使用1.0/0.95作为放大因子,因为视图可能在取消或结束之前接收两次触摸.

我想我问这个问题同样的事情:只将CGAffineTransform的scale组件应用到UIView,但我不认为这里的答案对我有用.

我的目标是iOS 7及更高版本.

core-graphics uiview quartz-2d ios

5
推荐指数
1
解决办法
7350
查看次数