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

如何在Swift中从字符串生成条形码?

乐正宜人
2023-03-14
问题内容

我是一名新的iOS开发人员。我想知道如何在Swift中生成条形码。

我已经有了代码,可以从多种资源中学习如何读取条形码,但是我没有发现任何有关从字符串生成条形码的内容。

非常感谢!

PS:我知道对此也有类似的问题,但这是针对Objective-C的。我不了解Obj-C,但发现来自.NET很难。


问题答案:

您可以使用CoreImage(import CoreImage)过滤器来做到这一点!

~~~~

    class Barcode {
        class func fromString(string : String) -> UIImage? {
             let data = string.data(using: .ascii)
             if let filter = CIFilter(name: "CICode128BarcodeGenerator") {
                  filter.setValue(data, forKey: "inputMessage")
                  if let outputCIImage = filter.outputImage {
                       return UIImage(ciImage: outputCIImage)
                  }
             }
             return nil
        }
    }

    let img = Barcode.fromString("whateva")

较新的版本,guard且初始化程序失败:

extension UIImage {

    convenience init?(barcode: String) {
        let data = barcode.data(using: .ascii)
        guard let filter = CIFilter(name: "CICode128BarcodeGenerator") else {
            return nil
        }
        filter.setValue(data, forKey: "inputMessage")
        guard let ciImage = filter.outputImage else {
            return nil
        }
        self.init(ciImage: ciImage)
    }

}

用法:

let barcode = UIImage(barcode: "some text") // yields UIImage?

根据文档:

根据ISO / IEC
15417:2007标准生成代表输入数据的输出图像。输出图像中条形码的每个模块(垂直线)的宽度为一个像素。条形码的高度为32像素。要从字符串或URL创建条形码,请使用NSASCIIStringEncoding字符串编码将其转换为NSData对象。



 类似资料:
  • 我正在试着做一个简单的咖啡计算器。我需要显示以克为单位的咖啡量。克的“G”符号需要附加到我用来显示数量的UILabel上。UILabel中的数字随着用户输入而动态变化很好,但我需要在字符串末尾添加一个小写“G”,它的格式与更新数字的格式不同。“G”需要附加在数字上,以便随着数字大小和位置的改变,“G”会随着数字“移动”。我肯定这个问题以前已经解决了,所以一个正确方向的链接将是有帮助的,因为我已经谷

  • 问题内容: 如何在Swift中生成随机的字母数字字符串? 问题答案: Swift 4.2更新 Swift 4.2在处理随机值和元素方面引入了重大改进。您可以在此处阅读有关这些改进的更多信息。这是减少到几行的方法: Swift 3.0更新 原始答案:

  • 问题内容: 我有我需要生成使用。可以转换吗?你们可以帮忙吗? 问题答案: 这是NSArray和NSDictionary的类别,它使此操作变得非常容易。我为漂亮打印添加了一个选项(换行和标签使阅读更容易)。 。 。 。

  • 问题内容: 红宝石有功能string.squeeze,但我似乎找不到快速等效。 例如我想转簿记员-> bokepr 我唯一的选择是创建一组字符,然后将字符从该组拉回到字符串中吗? 有一个更好的方法吗? 问题答案: 编辑/更新: Swift 4.2或更高版本 您可以使用一组来过滤重复的字符: 或作为扩展,也将扩展String和Substrings:

  • 问题内容: 如何从字符串中去除特殊字符的答案?不管用。 这是我得到的,它给我一个错误 错误提示 _Element(aka字符)无法转换为预期的参数类型’String’。 问题答案: 像这样: 测试方法如下:

  • 问题内容: 我一直在尝试从Swift中初始化一个字符串。 苹果在NSString Cocoa文档 中说您必须使用以下代码: 但是,苹果没有提供任何用法或放置示例的示例。 我正在尝试将以下代码从Objective-C转换为Swift 我一直在尝试许多可能的语法,例如以下语法(当然它不起作用): 问题答案: 这是您应该如何初始化: Swift 2.X或更旧版本 Swift 3或更高版本: 本文档说明了