Я попадаю в IB_DESIGNABLE, и я наткнулся на проблему.IB_DESIGNABLE tintColor issues
Когда я устанавливаю tintColor своего пользовательского представления с IB, он отображается в правильном порядке в IB.
Но когда я запускаю его на устройстве она отображается по умолчанию tintColor.
#pragma mark - UIView
- (void)drawRect:(CGRect)rect {
[self drawCircleRadius:MIN(rect.size.width/2, rect.size.height/2) - self.lineWidth/2.f
rect:rect
startAngle:self.startAngleRadians
endAngle:self.endAngleRadians
lineWidth:self.lineWidth];
}
#pragma mark - private methods
- (void)drawCircleRadius:(CGFloat)radius
rect:(CGRect)rect
startAngle:(CGFloat)startAngle
endAngle:(CGFloat)endAngel
lineWidth:(CGFloat)lineWidth {
UIBezierPath* bezierPath = [UIBezierPath bezierPath];
[self.tintColor setStroke];
[bezierPath addArcWithCenter:CGPointMake(rect.size.width/2, rect.size.height/2)
radius:radius
startAngle:startAngle
endAngle:endAngel
clockwise:YES];
bezierPath.lineWidth = lineWidth;
[bezierPath stroke];
}
Что разница? Почему он отображается с цветом оттенков по умолчанию в устройстве и правильно отображается в IB?
UPDATE:
#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface PKCircleView : UIView
@property (nonatomic, assign) IBInspectable CGFloat startAngleRadians;
@property (nonatomic, assign) IBInspectable CGFloat endAngleRadians;
@property (nonatomic, assign) IBInspectable CGFloat lineWidth;
@end
Я запустил ваш код, и он отлично работал в IB, симуляторе и на устройстве. Проблема должна быть где-то в другом месте. Может быть, показать свой файл заголовка для пользовательского представления? Вот то, что я использовал: '#import IB_DESIGNABLE @interface Круг: UIView @property (неатомической) IBInspectable двойной LineWidth; @property (неатомный) IBInspectable double startAngleRadians; @property (неатомный) IBInspectable double endAngleRadians; @ конец' –
picciano
@picciano да, похоже на то же. – BergP