我一直在努力实现像iOS日历应用程序中的彩色圆形项目符号。
我想在textLabel前面放置带圆圈的单元格,如上图所示。
我还希望在detailTextLabel前面有相应的圆圈,如上图所示。
我试图用框架内的图像来做这件事,但它总是太大了。此外,日历应用程序中的圆圈似乎不在单元格的imageView中。
我也尝试用另一个问题找到的代码绘制一个圆圈。这段代码对我不起作用。这是我的XYZCircleView.m文件中的代码:
- (void)drawRect:(CGRect)rect
{
// Drawing code
CGContextRef context= UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
CGContextSetAlpha(context, 0.5);
CGContextFillEllipseInRect(context, CGRectMake(0,0,self.frame.size.width,self.frame.size.height));
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
//CGContextStrokeEllipseInRect(context, CGRectMake(0,0,self.frame.size.width,self.frame.size.height));
CGContextStrokeEllipseInRect(context, CGRectMake(1, 1, self.frame.size.width - 2, self.frame.size.height - 2));
}
在cellForRow...
内:
CGRect positionFrame = CGRectMake(10,10,10,10);
XYZCircleView *circleView = [[XYZCircleView alloc] initWithFrame:positionFrame];
[cell.contentView addSubview:circleView];
如何做到这一点?
由于
答案 0 :(得分:5)
使用项目符号字符并使用属性字符串,以便设置项目符号的颜色。
这样的事情:
NSString *text = @"• Calendar";
NSDictionary *attributes = @{ NSFontAttributeName : [UIFont systemFontOfSize:15] };
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:text attributes:attributes];
[attrStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 1)]; // color the bullet
[attrStr addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(1, attrStr.length - 1)]; // color the rest
cell.text.attributedText = attrStr;
您可能需要根据需要使用不同的字体。
答案 1 :(得分:1)
尝试将方形视图作为子视图添加到单元格,并设置其图层的cornerRadius
属性,使其成为圆形。