Je teste un UIView en utilisant un UISlider comme dans l'exemple des images ci-dessous:Redimensionner une UIView, mais le dessin fait par drawRect aussi changer la taille
J'ai un UIView personnalisé avec un fond jaune qui dessine le carré gris, la méthode drawRect est comme ceci:
-(void)drawRect:(CGRect)rect{
NSLog(@"Draw rect called");
UIBezierPath* squarePath = [UIBezierPath bezierPathWithRect: CGRectMake(10, 10, 100, 100)];
[UIColor.grayColor setFill];
[squarePath fill];
}
Et la méthode pour ma diapositive changement de valeur:
- (IBAction)changeValue:(id)sender {
CGAffineTransform transform = CGAffineTransformScale(CGAffineTransformIdentity, self.slider.value, self.slider.value);
self.tableView.transform = transform;
[self.tableView setNeedsDisplay];
}
Je ne comprends pas pourquoi le carré devient plus grand. J'ai remarqué que drawRect est appelé chaque fois que le curseur est déplacé. Si cela arrive, pourquoi la taille du carré change-t-elle? Ne devrait-il pas rester de la même taille et juste le cadre croître avec le carré dans le coin supérieur gauche?
Ma deuxième question est, comment pourrais-je changer le code si juste le cadre se développe et la taille de dessin reste la même? Je pose cette question parce que je veux que la taille du dessin change dynamiquement en utilisant mon propre code dans drawRect.
Tous les pointeurs seraient vraiment appréciés! Merci!