мне нужно установить скругленный прямоугольник в качестве фона для UIButton, и мне нужно, чтобы создать его программно, связанным с цветомПомутнения округлого прямоугольника UIBezierPath, UIButton фон
+ (UIImage *)buttonBackgroundWithColor:(UIColor *)color {
UIGraphicsBeginImageContextWithOptions(CGSizeMake(30.f, 30.f), NO, 1.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[color setStroke];
UIBezierPath *bezierPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(2.f, 2.f, 26.f, 26.f)
cornerRadius:7.f];
CGContextSetStrokeColorWithColor(context, color.CGColor);
bezierPath.lineWidth = 1.f;
[bezierPath stroke];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return [[image copy] resizableImageWithCapInsets:UIEdgeInsetsMake(10.f, 10.f, 10.f, 10.f)];
}
Я попытался сделать это, как это описанное здесь https://stackoverflow.com/a/19142851/1090590
но моя кнопка фон «размытый»
Что я делаю неправильно? Как я могу сделать это разборчивым?
использование button.border и button.layer.cornerRadius = 5; – Omarj
Я знаю об этом решении, но это будет не очень хорошо для API-интерфейса моего пользовательского интерфейса. – BergP
Я подозреваю, что проблема заключается в параметре 'scale'' UIGraphicsBeginImageContextWithOptions'. Установите его на «0.0», чтобы использовать масштабный коэффициент экрана устройства. – bobnoble