标签显示锯齿状文本

时间:2013-08-05 17:26:18

标签: ios objective-c uibutton quartz-graphics

我已经在我的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;
}

我已尝试对问题进行排查,并且我发现当标签或按钮的原点设置为非整数值时会发生这种情况。但是,我已经检查了按钮和像素的绝对值,它们都设置为整数值。我无法弄清楚还有什么可能出错,我找不到其他有同样问题的人。

1 个答案:

答案 0 :(得分:1)

通常,当锯齿状发生时,这是因为相同的视图被多次绘制。您是否确认此视图仅被抽取一次?