UILabel J'ai généré le UIColor dégradé par le code suivant:Définissez un bug de couleur de fond gradient pour
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor,
(__bridge id)[UIColor yellowColor].CGColor,
(__bridge id)[UIColor blueColor].CGColor];
gradientLayer.locations = @[@0.3, @0.5, @1.0];
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(1.0, 0);
gradientLayer.frame = CGRectMake(0, 0, 300, 100);
UIGraphicsBeginImageContextWithOptions(gradientLayer.bounds.size,NO, [UIScreen mainScreen].scale);
[gradientLayer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *gradientImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIColor *gradientColor = [UIColor colorWithPatternImage:gradientImage];
Pour vérifier le UIColor, j'ai ajouté le code suivant:
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(20, 130, 300, 100)];
[view setBackgroundColor:gradientColor];
[self.view addSubview:view];
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(20, 240, 300, 100)];
[label setBackgroundColor:gradientColor];
[self.view addSubview:label];
Je trouve que sur l'UIView, la couleur est normale, l'UILabel, la couleur devient plus petite As shown:
Je me demande pourquoi? Y a-t-il une solution? Merci.
Je veux convertir UIColor, qui est plus souple, par exemple, pour SetTextColor: –
Mais c'est pas la question que vous avez posée. – matt
Testé, UILabel dans l'utilisation de tous les [UIColor colorWithPatternImage: gradientImage], sera plus petit –