如何判断UIColor是否基于图案?

4
假设我想为UIView设置背景图片;显然,我可以调用[UIColor colorWithPatternImage]来实现这一点。是否有办法确定UIColor对象是否以这种方式初始化,即它是一个模式而不是纯色?

你为什么想知道这个? - Lily Ballard
3个回答

5

您可以尝试调用CGColorGetPattern(color.CGColor)函数。虽然该函数没有说明如果颜色不是模式颜色会发生什么,但是合理地期望它将返回NULL


3

我会尝试以下方法:

if (CGColorGetPattern(uiColor.CGColor)) {
    // it's a pattern-based color
}

0

对于Swift,您可以使用以下扩展:

public extension UIColor {

  /// Returns `true` if the color is backed by patterned image.
  var isPatterned: Bool {
    cgColor.pattern != nil
  }
}

对于 AppKit 中的 NSColor,您可以执行以下操作:

public extension NSColor {

  /// Returns `true` if the color is backed by patterned image.
  var isPatterned: Bool {
    type == .pattern
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接