UIButton に小さな赤い点を追加する必要があります。このメソッドを使用して、カスタム UIButton の色を設定します。
+ (UIImage *) imageFromColor:(UIColor *)color {
CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
// [[UIColor colorWithRed:222./255 green:227./255 blue: 229./255 alpha:1] CGColor]) ;
CGContextFillRect(context, rect);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
次に、このボタンに単純な赤い点を追加する必要があります。これは、おそらく次のように行われます。
+ (UIImage *) addRedDot
{
CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]);
// [[UIColor colorWithRed:222./255 green:227./255 blue: 229./255 alpha:1] CGColor]) ;
CGContextSetRGBStrokeColor(context, 1.0f, 0.0f, 0.0f, 1.0f);
CGContextSetLineWidth(context, 2.0);
CGContextStrokeEllipseInRect(context, CGRectMake(10, 11, 21, 21));
// CGContextFillRect(context, rect);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
しかし、それは白い画像を返すだけです..このクライアントコードは次のとおりです。
if ([dateStringToAssign isEqualToString:[self dateToString:[NSDate date]]])
{
[buttonToLay setBackgroundImage:[CommonUIUtility imageFromColor:[UIColor cyanColor]]
forState:UIControlStateNormal];
}
if([dbm hasEventsForDate:buttonToLay.ownedDate])
{
NSLog(@"Has events");
[buttonToLay setBackgroundImage:[CommonUIUtility addRedDot] forState:UIControlStateNormal];
}
既存の CGContext に小さな赤い点を追加する正しい方法は何ですか?