当前位置:  开发笔记 > 编程语言 > 正文

在iPhone中有没有标准的方法来实现"蓝色徽章"?

如何解决《在iPhone中有没有标准的方法来实现"蓝色徽章"?》经验,为你挑选了1个好方法。

许多iPhone应用程序使用蓝色徽章来指示子视图中的项目数,例如Mail客户端:

iPhoto http://img.skitch.com/20081103-tjr9yupbhgr3sqfh7u56if4rsn.preview.jpg

有没有任何标准方式(甚至API)这样做?

更新:我创建了一个名为BlueBadge的类来执行此操作.它可以在http://github.com/leonho/iphone-libs/tree/master上找到



1> Ben Gottlieb..:

据我所知,这没有API.但是,使用CoreGraphics(iPhone上没有NSBezierPath),您可以非常轻松地完成.它只是CGPath中的两个弧和一些文本:

CGContextRef        context = UIGraphicsGetCurrentContext();
float               radius = bounds.size.height / 2.0;
NSString            *countString = [NSString stringWithFormat: @"%d", count];

CGContextClearRect(context, bounds);

CGContextSetFillColorWithColor(context, ovalColor);
CGContextBeginPath(context);
CGContextAddArc(context, radius, radius, radius, M_PI / 2 , 3 * M_PI / 2, NO);
CGContextAddArc(context, bounds.size.width - radius, radius, radius, 3 * M_PI / 2, M_PI / 2, NO);
CGContextClosePath(context);
CGContextFillPath(context);

[[UIColor whiteColor] set];

UIFont              *font = [UIFont boldSystemFontOfSize: 14];
CGSize              numberSize = [countString sizeWithFont: font];

bounds.origin.x = (bounds.size.width - numberSize.width) / 2;

[countString drawInRect: bounds withFont: font];

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有