Swift
과 Objective-C
으로 질문을 태그했습니다.
스위프트, 당신은 특정 색상으로 "빈"이미지를 만들려면이 확장을 사용할 수 있습니다
public extension UIImage {
public convenience init?(color: UIColor, size: CGSize = CGSize(width: 1, height: 1)) {
let rect = CGRect(origin: .zero, size: size)
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
color.setFill()
UIRectFill(rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
guard let cgImage = image?.cgImage else { return nil }
self.init(cgImage: cgImage)
}
}
을 다음, 추가 "빨간색 사각형을 옆에있는 버튼 텍스트에"
let btnImage = UIImage(color: .red, size: CGSize(width: 28, height: 28))
btn.setImage(btnImage, for: .normal)
당신의 Obj-C에서이 작업을 수행해야하는 경우
, 같은 프로세스의 :
- (UIImage *)imageWithColor:(UIColor *)color andSize:(CGSize)sz {
CGRect rect = CGRectMake(0.0f, 0.0f, sz.width, sz.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
및
UIImage *btnImage = [self imageWithColor:[UIColor redColor] andSize:CGSizeMake(28.0, 28.0)];
[_btn setImage:btnImage forState:UIControlStateNormal];
참고 : UIButton
유형 Custom
로 설정하거나, 이미지가 "착색"될 것입니다 있는지 확인합니다.
예를 들어 https://stackoverflow.com/questions/41545599/how-to-change-tintcolor-of-image-in-uibutton-with-imageedgeinsets를 참조하십시오. –
@Pascal 완벽한 해결책은 아니지만 추가해볼 수 있습니다. 텍스트 및 이미지 내부 UIView 및 빈 UIButton 추가합니다. –
투명한 이미지를 버튼으로 설정하면 작동합니다 .... –