iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – CGAffineTransformMakeScale使UIView在缩放之前跳转到原始大小大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个UIView,我设置来响应捏捏手势和改变它的大小,除了,一旦你放大,然后再试一次,它跳转到原来的大小(这恰好是100×200).这是代码

@implementation ChartAxisView


- (id)initWithFrame:(CGRect)frame {
    if ((self = [super initWithFrame:frame])) {
        // do gesture recognizers
        UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@SELEctor(onPinch:)]; 
        [self addGestureRecognizer:pinch]; 
        [pinch release];
    }
    return self;
}

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGColorRef redColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0].CGColor;

    CGContextSetFillColorWithColor(context,redColor);
    CGContextFillRect(context,self.bounds);
}

- (void)onPinch: (UIPinchGestureRecognizer*) gesture {  
    self.transform = CGAffineTransformMakeScale(gesture.scale,gesture.scalE);
}

- (void)dealloc {
    [super dealloc];
}


@end

有什么想法吗?

解决方法

所以有两种类型的Scale(或者一般的变换)函数CGAffineTransformMakeScaleCGAffineTransformScale

一个,您正在使用的CGAffineTransformMakeScale,总是相对于图像的原始大小进行转换.这就是为什么你在缩放发生之前看到跳转到原来的大小.

第二个,CGAffineTransformScale从图像的当前位置转换.这就是你所需要的.为此,它需要一个额外的“转换”参数.您的案例中的“变换”参数表示放大的图像.

阅读this非常翔实的博客文章转换.

大佬总结

以上是大佬教程为你收集整理的objective-c – CGAffineTransformMakeScale使UIView在缩放之前跳转到原始大小全部内容,希望文章能够帮你解决objective-c – CGAffineTransformMakeScale使UIView在缩放之前跳转到原始大小所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。