これはあなたがインターフェイスビルダーで、それの影をコントロールすることができる場所私が作ったカスタムUIView
クラスの私が持っている次のコードです:私はawakeFromNib
を使用する場合iOS - IBInspectableの仕事をするためにどのようなObjective-Cメソッドが必要ですか?
#import "ShadowView.h"
@interface ShadowView()
@property (copy, nonatomic) IBInspectable UIColor *shadowColor;
@property (assign, nonatomic) IBInspectable CGFloat xOffset;
@property (assign, nonatomic) IBInspectable CGFloat yOffset;
@property (assign, nonatomic) IBInspectable float shadowOpacity;
@property (assign, nonatomic) IBInspectable CGFloat shadowRadius;
@property (assign, nonatomic) IBInspectable CGFloat xInset;
@property (assign, nonatomic) IBInspectable CGFloat yInset;
@end
@implementation ShadowView
#pragma mark - Lifecycle
//-(void)awakeFromNib {
// [super awakeFromNib];
// [self setUpView];
//}
-(void)drawRect:(CGRect)rect {
[super drawRect:rect];
[self setUpView];
}
#pragma mark - Helpers
-(void)setUpView {
self.layer.shadowColor = _shadowColor.CGColor;
self.layer.shadowOffset = CGSizeMake(_xOffset, _yOffset);
self.layer.shadowOpacity = _shadowOpacity;
self.layer.shadowRadius = _shadowRadius;
CGRect shadowRect = CGRectInset(self.bounds, _xInset, _yInset);
self.layer.shadowPath = [[UIBezierPath bezierPathWithRect:shadowRect] CGPath];
}
@end
、影がiPhone 5用シミュレータだけ半分に取り組みます彼らのiPhone6エミュレータで動作します。 drawRect
はすべて動作するようですが、init(frame: CGRect)
とinit?(coder aDecoder: NSCoder)
を使用するスウィフトの例を見てきました。この権利を常に得るために必要な方法は何ですか?
注:インターフェイスビルダーで影がレンダーされないため、この場合はIB_DESIGNABLE
を使用していません。
わかりませんが、IB_DESIGNABLEに設定することなくIBInspectableを使用することはできません – Suhaib