我希望您瞭解類別?
創建一個類別將是更好的選擇:
Command + N > Objective-C Category > Category = Animation & Category on = UIView
這將創建一個名稱UIView+Animation.h
和UIView+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];
我不知道這是否會幫助,但'opaque'應該是'NO'。另外,這是一個非常大的'shadowOffset'。 – fumoboy007
'clipsToBounds'屬性怎麼樣? – holex
你確定你的titleLabelColor不是backColor嗎?另外,我認爲10,10的偏移量太大了,你的影子可能會超出視線範圍。嘗試將它設置爲(任意)1和-1的組合0 –