【发布时间】:2011-08-31 19:19:30
【问题描述】:
我需要使用 UIPinchGestureRecognizer 但没有 CGAffineTransform 来缩放视图, 那么如何在没有 CGAffineTransform 的情况下更改此代码呢?
- (IBAction)zoomma:(UIGestureRecognizer *)sender {
CGFloat factor = [(UIPinchGestureRecognizer *)sender scale];
if (factor > 1) {
self.sgungaView.transform = CGAffineTransformMakeScale(lastScaleFactor + (factor-1), lastScaleFactor + (factor-1));
} else {
self.sgungaView.transform = CGAffineTransformMakeScale(lastScaleFactor * factor, lastScaleFactor * factor);
}
if (sender.state == UIGestureRecognizerStateEnded) {
if (factor > 1) {
lastScaleFactor += (factor-1);
} else {
lastScaleFactor *= factor;
}
}
}
编辑:
不是杰作,但它有效
- (void)zoomma:(UIGestureRecognizer *)sender {
CGFloat factor = [(UIPinchGestureRecognizer *)sender scale];
if (factor > 1) {
float enlarge = lastScaleFactor + (factor-1);
[self.sgungaView setBounds:CGRectMake(0, 0, self.sgungaView.bounds.size.height + enlarge, self.sgungaView.bounds.size.height + enlarge)];
} else {
float stringi = lastScaleFactor * factor;
[self.sgungaView setBounds:CGRectMake(0, 0, self.sgungaView.bounds.size.height - stringi, self.sgungaView.bounds.size.height - stringi)];
}
if (sender.state == UIGestureRecognizerStateEnded) {
if (factor > 1) {
lastScaleFactor += (factor-1);
} else {
lastScaleFactor *= factor;
}
}
}
有更好的方法吗?
【问题讨论】:
-
为什么不想使用 CGAffineTransform?
-
我有一种方法可以在该视图上应用旋转,但我无法连接变换
-
为什么不能连接 2 个转换?
-
解决方案可以成为永久转换的一种方法,但似乎没有办法做到这一点
-
我无法连接,因为旋转变换是由设备旋转驱动的,我尝试这样做没有运气
标签: iphone ios cgaffinetransform