0

我创建了一个自定义按钮类以在我的 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;
}

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

4

1 回答 1

1

通常,当出现锯齿时,这是因为同一个视图在其自身上被多次绘制。您是否确认此视图仅绘制一次?

于 2013-08-05T20:42:16.270 回答