我尝试应用由编程加载的UIImageView
组成的animationImages
的色调。目前使用的是iOS 9.3。
我认为我已经尝试了在此处找到的所有解决方案,用于应用色调,包括:
let newImage: UIImage? =
UIImage(named: filename as
String)!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
zeroImageView.tintColor = UIColor.redColor()
zeroImageView.image = zeroImageView.image!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
imageRenderingMode Number 2
图像序列是具有透明度的PNG,因此,我想重新着色图像并保持透明度。
我没有运气,有点不知所措。想知道这些方法是否仅适用于静态UIAnimationView?非常感谢任何帮助,谢谢!
这里有一些代码:
// Load all images
while let element = enumerator.nextObject() as? String {
if element.hasSuffix("png") {
let filename: NSString = "Digits/0/" + element
print(filename)
imageNames.append(filename as String)
let newImage: UIImage? = UIImage(named: filename as String)!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
images.append(newImage!)
zeroImageView.tintColor = UIColor.redColor()
}
}
// Make animated UIImageView
zeroImageView.userInteractionEnabled = false
zeroImageView.animationImages = images
zeroImageView.animationDuration = 2.0
zeroImageView.startAnimating()
zeroImageView.tintColor = UIColor.redColor()
答案 0 :(得分:0)
如果下一步没有工作,我会以编程方式在UIImageView上放置一个空的UIView。首先,它不会干扰UIImageView中发生的任何事情。
我会在这里查看本教程:http://www.apptuitions.com/programmatically-creating-uiview-uislider-uiswitch-using-swift/
这将教你如何以编程方式将UIView添加到故事板。我会在viewDidLoad()方法中添加此代码。
你需要改变的主要是UIView的背景颜色。首先,你必须决定色调的颜色(从我在你的代码中看到的是红色),然后明确地改变颜色的'Alpha',使它几乎不显示。您更改'Alpha',因为这基本上是颜色的不透明度。
希望这有帮助。
答案 1 :(得分:0)
试试这个......
extension UIImage {
func image(withTint tint: UIColor) -> UIImage? {
guard let cgImage = cgImage else {
return nil
}
UIGraphicsBeginImageContextWithOptions(size, false, scale)
guard let context = UIGraphicsGetCurrentContext() else {
return nil
}
let rect = CGRect(origin: .zero, size: size)
context.translateBy(x: 0, y: size.height)
context.scaleBy(x: 1.0, y: -1.0)
context.setBlendMode(.normal)
context.clip(to: rect, mask: cgImage)
tint.setFill()
context.fill(rect)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}
}