Ios 用于显示等级的标签和标签边框应部分填充特定于等级的颜色
当我这样做时,我得到以下o/pIos 用于显示等级的标签和标签边框应部分填充特定于等级的颜色,ios,Ios,当我这样做时,我得到以下o/p 但我需要将标签边框填充90%,假设最大评级为5,剩余红色我创建了一个从uilabel继承的类,然后创建了该标签的对象,然后调用setNeedsDisplay方法,但它仍然不起作用它没有调用在我的label类中实现的drawrect方法此方法不起作用。默认角半径设置为默认黑色 self.rating.text=@"4.5"; self.rating.adjustsFontSizeToFitWidth=YES; self.rating.textColor = [U
但我需要将标签边框填充90%,假设最大评级为5,剩余红色我创建了一个从uilabel继承的类,然后创建了该标签的对象,然后调用setNeedsDisplay方法,但它仍然不起作用它没有调用在我的label类中实现的drawrect方法此方法不起作用。默认角半径设置为默认黑色
self.rating.text=@"4.5";
self.rating.adjustsFontSizeToFitWidth=YES;
self.rating.textColor = [UIColor blackColor];
self.rating.font = [UIFont fontWithName:@"Helvetica-Bold" size:8.0];
self.rating.layer.borderColor = [UIColor colorWithRed:.2 green:1 blue:0 alpha:1].CGColor;
self.rating.layer.borderWidth = 2.0f;
self.rating.textAlignment=NSTextAlignmentCenter;
self.rating.clipsToBounds=YES;
self.rating.layer.masksToBounds=YES;
There are lots of ways to do it, but one is to just draw two bezier paths, one for each side:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, [[UIColor blueColor] CGColor]);
UIBezierPath *blueHalf = [UIBezierPath bezierPath];
[blueHalf addArcWithCenter:CGPointMake(100, 100) radius:90.0 startAngle:-M_PI_2 endAngle:M_PI_2 clockwise:YES];
[blueHalf setLineWidth:4.0];
[blueHalf stroke];
CGContextSetStrokeColorWithColor(context, [[UIColor redColor] CGColor]);
UIBezierPath *redHalf = [UIBezierPath bezierPath];
[redHalf addArcWithCenter:CGPointMake(100.0, 100.0) radius:90.0 startAngle:M_PI_2 endAngle:3.0 * M_PI_2 clockwise:YES];
[redHalf setLineWidth:4.0];
[redHalf stroke];
}