J'ai une sous-classe UIView qui dessine un rectangle simple avec ce code:définir une couleur de fond d'un UIView d'un UIViewController
- (void)drawRect:(CGRect)rect {
//Get the CGContext from this view
CGContextRef context = UIGraphicsGetCurrentContext();
CGColorRef myColor = [UIColor colorWithHue:0 saturation:1 brightness:0.61 alpha:1].CGColor;
//Draw a rectangle
CGContextSetFillColorWithColor(context, myColor);
//Define a rectangle
CGContextAddRect(context, CGRectMake(0, 0, 95.0, 110.0));
//Draw it
CGContextFillPath(context);
}
puis, j'ai un UIViewController séparé qui a une UISlider en elle
-(IBAction) sliderChanged:(id) sender{
UISlider *slider = (UISlider *)sender;
int sliderValue = (int)[slider value];
float sliderFloat = (float) sliderValue;
NSLog(@"sliderValue ... %d",sliderValue);
NSLog(@"sliderFloat ... %.1f",sliderFloat/100);
}
ici, dans sliderChanged, je voudrais t o être capable de changer dynamiquement la couleur d'arrière-plan du rectangle dessiné dans la sous-classe UIView. Comment devrais-je mettre en œuvre ceci?
merci!
je reçois une erreur de compilation lorsque vous essayez d'ajouter les lignes NSColor « attendus spécifier-qualifier-list avant NSColor ". Puis-je utiliser UIColor à la place? – TrekOnTV2017
Oups désolé. Je n'ai pas réalisé que vous êtes sur iOS. Bien sûr vous pouvez. NSColor est juste la contrepartie d'UIColor sur OSX. –
merci, je me suis dit. maintenant dans ma fonction sliderChanged j'essaye de faire ceci: \t CGColorRef myColor = [couleur UIColorWithHue: 0.3 saturation: 0.3 luminosité: 0.3 alpha: 1] .CGColor; \t drawTest.rectColor = maCouleur; mais j'obtiens "Accès à la méthode de classe 'setRectColor' inconnue". Je suis sûr que je manque un pas quelque part. – TrekOnTV2017