7

我试图在我的应用程序的一个类中给一个标签一个阴影,但它根本不起作用。什么都没有出现。我究竟做错了什么?

// Set label properties
titleLabel.font = [UIFont boldSystemFontOfSize:TITLE_FONT_SIZE];
titleLabel.adjustsFontSizeToFitWidth = NO;
titleLabel.opaque = YES;
titleLabel.backgroundColor = [UIColor clearColor];
titleLabel.textColor = titleLabelColor;
titleLabel.shadowColor = [UIColor blackColor];
titleLabel.shadowOffset = CGSizeMake(10, 10);

它只是白色,没有阴影。

4

3 回答 3

13

只需在将 titleLabel 添加到 self.view 之前添加此行

 titleLabel.layer.masksToBounds = NO;

祝你好运 !!

于 2013-05-20T08:14:43.720 回答
3

我希望你知道类别?

创建一个类别将是更好的选择:

Command + N > Objective-C Category > Category = Animation & Category on = UIView 这将创建 2 个文件,其名称UIView+Animation.hUIView+Animation.m

UIView+Animation.h文件

#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>

@interface UIView (Animation)
- (void)setBackgroundShadow:(UIColor *)shadowColor CGSize:(CGSize)CGSize shadowOpacity:(float)shadowOpacity shadowRadius:(float)shadowRadius;
@end

UIView+Animation.m文件

#import "UIView+Animation.h"

@implementation UIView (Animation)
- (void)setBackgroundShadow:(UIColor *)shadowColor CGSize:(CGSize)CGSize shadowOpacity:(float)shadowOpacity shadowRadius:(float)shadowRadius
{
    self.layer.shadowColor = shadowColor.CGColor;
    self.layer.shadowOffset = CGSize;
    self.layer.shadowOpacity = shadowOpacity;
    self.layer.shadowRadius = shadowRadius;
    self.clipsToBounds = NO;
}

导入UIView+Animation.h您的任何一个viewController并像这样调用它:

[self.titleLabel  setBackgroundShadow:[UIColor grayColor] CGSize:CGSizeMake(0, 5) shadowOpacity:1 shadowRadius:5.0];
于 2013-05-20T08:17:49.857 回答
0

只需确保您分配了 UILabel 并为标签设置了一个框架。并确保将该视图添加到子视图中。像这样的东西:

    titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 30)];
    titleLabel.font = [UIFont boldSystemFontOfSize:14];
    titleLabel.adjustsFontSizeToFitWidth = NO;
    titleLabel.opaque = YES;
    titleLabel.text = @"My Label";
    titleLabel.backgroundColor = [UIColor clearColor];
    titleLabel.textColor = [UIColor whiteColor];
    titleLabel.shadowColor = [UIColor blackColor];
    titleLabel.shadowOffset = CGSizeMake(5, 5);
    [myView addSubview:titleLabel];
    [titleLabel release];

阴影偏移的值 10 相当大。您可以根据您的要求调整值。

于 2013-05-20T08:09:12.760 回答