2013-08-05 1 views
0

J'ai créé une classe de boutons personnalisés à utiliser dans mes xibs qui est essentiellement un simple bouton avec une ombre avec une étiquette dessus. Cependant, le texte de l'étiquette est irrégulier (comme s'il n'était pas anti-aliasé). Voici mon code pour la partie pertinente de la classe (c'est une très petite classe qui hérite de UIButton).Étiquette montrant le texte en dents de scie

- (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; 
} 

J'ai essayé le dépannage du problème et je l'ai trouvé que cela peut se produire lorsque l'origine de l'étiquette ou le bouton est fixé à une valeur non entière. Cependant, j'ai vérifié la valeur absolue pour le bouton et le pixel et ils sont tous les deux mis à des valeurs entières. Je n'ai pas été en mesure de comprendre ce qui pourrait aller de travers et je ne peux pas trouver d'autres qui ont eu le même problème.

Répondre

1

Généralement, lorsque des jaggies se produisent, c'est parce que la même vue est dessinée plusieurs fois sur elle-même. Avez-vous confirmé que ce point de vue n'est tiré qu'une seule fois?

Questions connexes