我已经在我的xib中创建了一个自定义按钮类,它基本上只是一个带有阴影并带有标签的按钮。但是,标签中的文本显示为锯齿状(好像它没有消除锯齿)。这是我的类的相关部分的代码(它是一个从UIButton继承的非常小的类)。
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self internalInit];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
[self internalInit];
}
return self;
}
- (void)internalInit {
self.backgroundColor = [UIColor colorWithRed:22/255.0 green:72/255.0 blue:143/255.0 alpha:1.0];
CGRect frame = self.frame;
frame.origin = CGPointMake(floorf(frame.origin.x), floorf(frame.origin.y));
//self.frame = CGRectIntegral(frame);
frame = self.titleLabel.frame;
frame.origin = CGPointMake(floorf(frame.origin.x), floorf(frame.origin.y));
//self.titleLabel.frame = CGRectIntegral(frame);
// Shadow
self.layer.shadowOffset = CGSizeMake(0, 1.5);
self.layer.shadowColor = [UIColor blackColor].CGColor;
self.layer.shadowOpacity = 0.3;
self.layer.shouldRasterize = YES;
self.layer.shadowPath = [[UIBezierPath bezierPathWithRect:self.bounds] CGPath];
// Corner
self.layer.cornerRadius = 5;
}
我已尝试对问题进行排查,并且我发现当标签或按钮的原点设置为非整数值时会发生这种情况。但是,我已经检查了按钮和像素的绝对值,它们都设置为整数值。我无法弄清楚还有什么可能出错,我找不到其他有同样问题的人。
答案 0 :(得分:1)
通常,当锯齿状发生时,这是因为相同的视图被多次绘制。您是否确认此视图仅被抽取一次?