当前位置: 首页 > 面试题库 >

在Swift中用纯色创建UIImage

燕智
2023-03-14
问题内容

我想以编程方式创建由纯色填充的UIImage。有人知道如何在Swift中执行此操作吗?


问题答案:

另一个与 Swift 2.2 兼容的不错的解决方案是以这种方式在UIImage中创建另一个构造函数:

public extension UIImage {
    public convenience init?(color: UIColor, size: CGSize = CGSize(width: 1, height: 1)) {
        let rect = CGRect(origin: .zero, size: size)
        UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
        color.setFill()
        UIRectFill(rect)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        guard let cgImage = image?.CGImage else { return nil }
        self.init(CGImage: cgImage)
    }  
}

这样,您可以通过以下方式创建自定义彩色图像:

let redImage = UIImage(color: .redColor())

或者,可以选择创建具有自定义尺寸的图像:

let redImage200x200 = UIImage(color: .redColor(), size: CGSize(width: 200, height: 200))

斯威夫特3.0

public extension UIImage {
  public convenience init?(color: UIColor, size: CGSize = CGSize(width: 1, height: 1)) {
    let rect = CGRect(origin: .zero, size: size)
    UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
    color.setFill()
    UIRectFill(rect)
    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    guard let cgImage = image?.cgImage else { return nil }
    self.init(cgImage: cgImage)
  }
}


 类似资料:
  • 问题内容: 除非a 声明为,否则引用似乎在Swift中不起作用,我不希望在纯Swift应用程序中使用它。 这段代码给出了一个编译错误(不能应用于非类类型): 我需要给协议加上前缀,然后它才能工作。 问题:什么是完成Swift的“纯” Swift方法 ? 问题答案: 您需要将协议类型声明为。 用你的话说,只有类才能符合此协议,而结构或枚举则不能。

  • 问题内容: 在ObjectiveC中,我会这样做 但是我在Swift中尝试了所有这样的选择,但都没有成功 它显示一个错误: 使用未解析的标识符“ AlwaysOriginal” 我怎么做? 问题答案: 那将是正确的语法: (对于 Swift 3.x 或 Swift 4 ) (对于 Swift 2.x ) 但您也可以使用此“快捷方式”:

  • 问题内容: 我是新手,并不熟悉Objective-C。有人可以帮我将其转换为Swift吗?我得到这个代码雷Wenderlich最好的iOS做法-http://www.raywenderlich.com/31166/25-ios-app-performance-tips- tricks 您会将代码放在哪里?它将放入充满全局变量的类文件中吗? 问题答案: 如果您确实要寻找问题中方法的直接模拟,则可以执

  • 问题内容: 我有一些有效的代码,但我正在寻找一种更好的方法。我有一个RESTful Web API,我想支持JSON,XML和TEXT媒体类型。使用带有JAXB注释的“ bean”类,可以轻松实现JSON和XML。我只是使用了 纯文本/纯文本 ,但是我希望Jersey更加智能一些,并且能够使用来将我的bean列表转换为字符串。 这是Resource类。JSON和XML媒体类型使用带有JAXB注释的

  • 问题内容: 我不熟悉Swift,也不确定如何从字符串路径(或某种对象)创建新文件夹 这是在带有Cocoa的OS X上。 问题答案: 我的理解是,您正在尝试使用swift以编程方式创建目录。下面给出的代码执行相同的操作。

  • 问题内容: 我一直在四处搜寻有关如何使用Swift 2.0为MapView制作MKCircle注释的良好解释,但我似乎找不到足够的解释。有人可以张贴一些示例代码来显示如何创建MKCircle批注吗?这是我用来制作地图并获取坐标的代码。 问题答案: 将展示有关如何使用xcode 8.3.3的swift 3在地图视图上创建圆形叠加层的分步方法 在您的主故事板文件中,将地图工具包视图拖到故事板的场景(视