我正在使用在此问题中讨论的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/