Ho un UIView che ho impostato per rispondere ai gesti di pizzicamento e modificare le sue dimensioni, eccetto, una volta ingrandito e quindi provare a pizzicarlo di nuovo, salta alla sua dimensione originale (che per caso è 100x200). Ecco il codice:CGAffineTransformMakeScale Rende UIView salta alla dimensione originale prima della scala
@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
Qualche idea?
Inoltre, il ridimensionamento automatico farà sì che i vincoli a interferire con la posizione, anche se viene utilizzato 'CAAffineTransformScale'. –