@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(或者一般的变换)函数: CGAffineTransformMakeScale和 CGAffineTransformScale第一个,您正在使用的CGAffinetransformMakeScale,总是相对于图像的原始大小进行转换.这就是为什么你在缩放发生之前看到跳转到原来的大小.
第二个,CGAffinetransformScale从图像的当前位置转换.这就是你所需要的.为此,它需要一个额外的“转换”参数.您的案例中的“变换”参数表示放大的图像.
阅读this非常翔实的博客文章转换.
总结以上是内存溢出为你收集整理的objective-c – CGAffineTransformMakeScale使UIView在缩放之前跳转到原始大小全部内容,希望文章能够帮你解决objective-c – CGAffineTransformMakeScale使UIView在缩放之前跳转到原始大小所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)