7

アプリのクラスの 1 つでラベルにドロップ シャドウを付けようとしていますが、まったく機能しません。何も表示されません。私は何を間違っていますか?

// 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 これにより、名前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 に答える