我正在使用在此问题中讨论的CustomBadge库:How can I add a badge to a standard UIButton?

这是我的代码:

CustomBadge* customBadge =
    [CustomBadge customBadgeWithString:@"$2.99"
                       withStringColor:[UIColor whiteColor]
                        withInsetColor:[UIColor redColor]
                        withBadgeFrame:YES
                   withBadgeFrameColor:[UIColor whiteColor]
                             withScale:1.0
                           withShining:NO];
 customBadge.frame = CGRectMake(self.btnUpgrade.frame.size.width - customBadge.frame.size.width + 15, -15, customBadge.frame.size.width, customBadge.frame.size.height);

[self.btnUpgrade addSubview:customBadge];


我得到了我所期望的:



我正在使用NavigationController。当我进入另一个ViewController并返回时,我的徽章有一个“尾巴”:



如果我摆脱了customBadge.frame行,则徽章会正确显示(尽管位置错误)。

该代码正在viewWillAppear上执行:

任何线索可能是什么原因造成的?

CustomBadge代码位于:https://github.com/ckteebe/CustomBadge/blob/master/Classes/CustomBadge.m

最佳答案

我猜问题出在路径上。因此,要解决此问题,我将:


检查您从想要的点开始的路径,而不是从随机的点开始。这意味着您需要先调用CGContextMoveToPoint,然后再调用CGContextBeginPath
在使用前,请关闭(CGContextClosePath)每个路径。

关于ios - CustomBadge渲染徽章周围的“垃圾”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14565304/

10-09 16:28