Tín dụng chuyển đến @bryanmac cho số helpful answer của mình. Tôi đã sử dụng mã của mình như là một điểm khởi đầu, nhưng tìm thấy cùng một thứ có thể đạt được mà không cần sử dụng một số UIImageView
.
Đây là giải pháp của tôi:
- (UIImage *)translucentImageFromImage:(UIImage *)image withAlpha:(CGFloat)alpha
{
CGRect rect = CGRectZero;
rect.size = image.size;
UIGraphicsBeginImageContext(image.size);
[image drawInRect:rect blendMode:kCGBlendModeScreen alpha:alpha];
UIImage * translucentImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return translucentImage;
}
Đặt hình nền của nút cho người khuyết tật nhà nước:
UIImage * disabledBgImage = [self translucentImageFromImage:originalBgImage withAlpha:0.5f];
[button setBackgroundImage:disabledBgImage forState:UIControlStateDisabled];
EDIT:
tôi tinh chế giải pháp của tôi hơn nữa bằng cách tạo ra một loại trên UIImage
với điều này Phương pháp:
- (UIImage *)translucentImageWithAlpha:(CGFloat)alpha
{
UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0);
CGRect bounds = CGRectMake(0, 0, self.size.width, self.size.height);
[self drawInRect:bounds blendMode:kCGBlendModeScreen alpha:alpha];
UIImage * translucentImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return translucentImage;
}
Đặt hình nền của nút cho tình trạng khuyết tật:
UIImage * disabledBgImage = [originalBgImage translucentImageWithAlpha:0.5f];
[button setBackgroundImage:disabledBgImage forState:UIControlStateDisabled];
Nguồn
2014-02-28 08:17:36
Cậu kết thúc tìm một giải pháp cho việc này? – bryanmac
Tôi cũng muốn tìm giải pháp cho câu hỏi này. – SAHM
Tôi nghĩ câu trả lời cho câu hỏi này đã được thêm vào đây. http://stackoverflow.com/questions/3467119/avoiding-making-a-uibutton-transparent-see-through-when-disabling-it –