更改NSTextAttachment图像的不透明度

时间:2016-02-21 18:42:36

标签: ios objective-c swift nsattributedstring nstextattachment

我似乎在使用NSTextAttachment中的NSAttributedString图片更改透明度时出现问题。

我有一个字符串,我想淡入淡出,但似乎附加到字符串的图像不会随文本淡出。

我尝试将NSBackgroundColorAttributeNameNSForegroundColorAttributeName属性设置为所需的alpha,但这不起作用。

我也没有看到NSTextAttachment的alpha或opacity属性,所以我看到的唯一选项是附加一个带有更正alpha的新UIImage,但这种方法将是最后一个采取。

我希望有人能有一种改变alpha的方法而不必我这样做。

Objective-C或Swift代码都适用于我。

1 个答案:

答案 0 :(得分:0)

截至目前,我正在做的事情是:

import Foundation
import UIKit
import CoreGraphics
extension UIImage
{
    /// copyWithAlpha: Creates a copy of a UIImage with the new alpha
    /// - Parameter alpha: Alpha value to set new image to. Between (0.0 - 1.0)
    /// - Returns: UIImage
    ///```swift
    ///   let copyImage = originalImage.copyWithAlpha(1.0)
    func copyWithAlpha(alpha:CGFloat) -> UIImage
    {
        UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale);
        drawAtPoint(CGPointZero,blendMode:.Normal, alpha:alpha);
        let alphaImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return alphaImage;
    }
}

此方法对任何人都可以免费使用。但是,我对这种方法不满意,因为它要求我保留原始UIImage的副本,并且每次都将alpha应用于原始版本,我无法继续将其重新应用于{{1}返回。