У меня есть мои представления, показывающие в построителе интерфейса с моим набором свойств IB_DESIGNABLE
, однако, когда я использую функцию предварительного просмотра, чтобы увидеть, как мои взгляды выглядят на разных устройствах, я просто получаю супер-представление, например. UIView
.IB_DESIGNABLE, с просмотром просмотров в предварительном просмотре?
Не IB_DESIGNABLE
просмотров в превью?
EDIT Как запрошенный код + скриншот:
H
=
#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface TitleBannerView : UILabel
@property (nonatomic) IBInspectable CGFloat borderWidth;
@property (nonatomic) IBInspectable CGFloat cornerRadius;
@property (nonatomic) IBInspectable CGFloat shadowHeight;
@end
M
=
@implementation TitleBannerView
@synthesize borderWidth;
@synthesize cornerRadius;
@synthesize shadowHeight;
- (void)drawRect:(CGRect)rect {
if (self.borderWidth == 0) self.borderWidth = 8.5;
if (self.cornerRadius == 0) self.cornerRadius = 33;
if (self.shadowHeight == 0) self.shadowHeight = 15.1;
CGContextRef context = UIGraphicsGetCurrentContext();
//// Color Declarations
UIColor* bG = [UIColor colorWithRed: 0.18 green: 0.8 blue: 0.443
alpha: 1];
UIColor* borderColor = [UIColor colorWithRed: 0.557 green: 0.267 blue: 0.678
alpha: 1];
UIColor* shadowColor2 = [UIColor colorWithRed: 0.976 green: 0.859 blue: 0.718
alpha: 1];
//// Shadow Declarations
UIColor* shadow = shadowColor2;
CGSize shadowOffset = CGSizeMake(-4.1, self.shadowHeight);
CGFloat shadowBlurRadius = 1.5;
//
//// Frames
CGRect frame = self.bounds;
//// Subframes
CGRect group = CGRectMake(CGRectGetMinX(frame) + 15,
CGRectGetMinY(frame) + 15, CGRectGetWidth(frame) - 28,
CGRectGetHeight(frame) - 40);
//// Abstracted Attributes
CGFloat roundedRectangleStrokeWidth = self.borderWidth ;
CGFloat roundedRectangleCornerRadius = self.cornerRadius;
//// Group
{
//// Rounded Rectangle Drawing
UIBezierPath* roundedRectanglePath = [UIBezierPath bezierPathWithRoundedRect:
CGRectMake(CGRectGetMinX(group) + floor(CGRectGetWidth(group) * 0.00060) + 0.5,
CGRectGetMinY(group) + floor(CGRectGetHeight(group) * 0.00568) + 0.5,
floor(CGRectGetWidth(group) * 0.99940) - floor(CGRectGetWidth(group) * 0.00060),
floor(CGRectGetHeight(group) * 0.99432) - floor(CGRectGetHeight(group) * 0.00568))
cornerRadius: roundedRectangleCornerRadius];
CGContextSaveGState(context);
CGContextSetShadowWithColor(context, shadowOffset, shadowBlurRadius,
shadow.CGColor);
[bG setFill];
[roundedRectanglePath fill];
CGContextRestoreGState(context);
[borderColor setStroke];
roundedRectanglePath.lineWidth = roundedRectangleStrokeWidth;
[roundedRectanglePath stroke];
}
}
@end
TitleBannerView это вид в зеленом цвете с пурпурной каймой.
ли вы имеете в виду использовать @IBDesignable указать свойства вашей точки зрения, вместо того чтобы ваш вид? – wj2061
Нет. Я не вижу чертежи, которые я создаю в чертеже на предварительном просмотре. – Jules
Работает ли он на симуляторе? – wj2061