I'm trying to make custom badge. For that I make subclass of UIButton and remake - (void)drawRect:(CGRect)rect like this:

    - (void)drawRect:(CGRect)rect
    {
        self.titleLabel.font = [UIFont systemFontOfSize:12];
        [self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        self.userInteractionEnabled = NO;
        self.layer.borderWidth = 1.5f;
        self.layer.cornerRadius = rect.size.width / 2;
        self.layer.shouldRasterize = YES;
        self.layer.rasterizationScale = [[UIScreen mainScreen] scale];
        self.layer.backgroundColor = [UIColor grayColor].CGColor;
        self.layer.borderColor = [UIColor grayColor].CGColor;
    }

And everything is good except alignment. It is a little upper than it should be. Looks like this: enter image description here

What to do?

有帮助吗?

解决方案 2

Here is badge I need: https://github.com/jessesquires/JSCustomBadge . Works perfect!

其他提示

@property(nonatomic) NSTextAlignment textAlignment;
// default is NSTextAlignmentLeft

It's an attribute of UILabel.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top