我有UIButton
,应该有白色图像和蓝色背景。问题是,图像的颜色被背景颜色掩盖并变成白色蓝色。
This是它应该是什么样子,this就是我得到的(忽略背景颜色的差异)。这是我设置图像的代码:
- (UIButton *)navButton
{
if (_navButton == nil) {
UIButton *navButton = [UIButton buttonWithType:UIButtonTypeCustom];
navButton.translatesAutoresizingMaskIntoConstraints = NO;
[navButton setBackgroundColor:[UIColor appBlue]];
[navButton setImage: [UIImage imageNamed:@"car_icon"] forState:UIControlStateNormal];
[navButton setEnabled:NO];
_navButton = navButton;
}
return _navButton;
}
答案 0 :(得分:3)
您可以使用此
override func viewDidLoad() {
super.viewDidLoad()
// Get the item[s] we're handling from the extension context.
// For example, look for an image and place it into an image view.
// Replace this with something appropriate for the type[s] your extension supports.
var imageFound = false
for item: AnyObject in self.extensionContext!.inputItems {
let inputItem = item as! NSExtensionItem
for provider: AnyObject in inputItem.attachments! {
let itemProvider = provider as! NSItemProvider
if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeImage as String) {
// This is an image. We'll load it, then place it in our image view.
weak var weakImageView = self.imageView
itemProvider.loadItemForTypeIdentifier(kUTTypeImage as String, options: nil, completionHandler: { (image, error) in
NSOperationQueue.mainQueue().addOperationWithBlock {
if let strongImageView = weakImageView {
if let imageURL = image as? NSURL{
strongImageView.image = UIImage(data: NSData(contentsOfURL: imageURL)!)
}else{
strongImageView.image = image as? UIImage
}
}
}
})
imageFound = true
break
}
}
if (imageFound) {
// We only handle one image, so stop looking for more.
break
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func done() {
// Return any edited content to the host app.
// This template doesn't do anything, so we just echo the passed in items.
self.extensionContext!.completeRequestReturningItems(self.extensionContext!.inputItems, completionHandler: nil)
}
答案 1 :(得分:1)
只需设置背景图片而不是按钮图片
[navButton setBackgroundColor:[UIColor appBlue]];
[navButton setBackgroundImage: [UIImage imageNamed:@"car_icon"] forState:UIControlStateNormal];
[navButton setEnabled:NO];
希望这可以帮助您解决这个问题。