UILabel上的阴影不会出现

She*_*lam 2 iphone cocoa-touch objective-c quartz-graphics uilabel

我想为我的UILabel添加一点阴影,但它没有显示出来.

companyLabel.textAlignment = UITextAlignmentLeft;
        companyLabel.font = [UIFont fontWithName:@"Arial" size:13];
        companyLabel.adjustsFontSizeToFitWidth = YES;
        companyLabel.minimumFontSize = 10.0; 
        companyLabel.backgroundColor = [UIColor clearColor];
        companyLabel.textColor = [UIColor colorWithRed:103.0/255.0 green:103.0/255.0 blue:103.0/255.0 alpha:1.0];
        companyLabel.layer.shadowColor = [[UIColor colorWithRed:241.0/255.0 green:241.0/255.0 blue:241.0/255.0 alpha:1.0] CGColor];
        companyLabel.layer.shadowOffset = CGSizeMake(0.0, -1.0);
        companyLabel.highlightedTextColor = [UIColor whiteColor];
Run Code Online (Sandbox Code Playgroud)

Lil*_*ard 21

您没有设置shadowOpacity,默认设置为0.0.您需要将其设置为其他内容以使阴影显示出来.然而,没有任何理由,甚至触摸CALayer,因为现在UILabel有自己shadowColorshadowOffset性能.

companyLabel.shadowColor = [UIColor colorWithRed:241.0/255.0 green:241.0/255.0 blue:241.0/255.0 alpha:1.0];
companyLabel.shadowOffset = CGSizeMake(0.0, -1.0);
Run Code Online (Sandbox Code Playgroud)

  • *"现在没有理由甚至触摸CALayer,因为UILabel有自己的shadowColor和shadowOffset属性."*呃?此阴影适用于文本,而不适用于视图.这些是不同的东西. (4认同)
  • @bijan:不是'UILabel`本身.如果你想为`CALayer`添加一个阴影,它支持更多属性(例如`shadowRadius`).但是,在图层上添加阴影的效果要比将其放在标签上要差. (2认同)