Files
suixinkan_uikit/suixinkan/UI/MainTab/MainScanTabItem.swift

44 lines
1.6 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// MainScanTabItem.swift
// suixinkan
//
import UIKit
/// TabBar
enum MainScanTabItem {
/// TabBarItem `MainTabBarController`
static func makeTabBarItem() -> UITabBarItem {
let image = makeScanImage()
let item = UITabBarItem(title: nil, image: image, selectedImage: image)
item.accessibilityLabel = "扫码核销"
item.accessibilityIdentifier = "main.scan"
return item
}
private static func makeScanImage() -> UIImage {
let diameter: CGFloat = 48
let renderer = UIGraphicsImageRenderer(size: CGSize(width: diameter, height: diameter))
return renderer.image { _ in
let bounds = CGRect(origin: .zero, size: CGSize(width: diameter, height: diameter))
AppColor.primary.setFill()
UIBezierPath(ovalIn: bounds).fill()
let configuration = UIImage.SymbolConfiguration(pointSize: 25, weight: .semibold)
guard let symbol = UIImage(systemName: "qrcode.viewfinder", withConfiguration: configuration) else {
return
}
let image = symbol.withTintColor(.white, renderingMode: .alwaysOriginal)
let symbolSize = CGSize(width: 28, height: 28)
let symbolRect = CGRect(
x: (diameter - symbolSize.width) / 2,
y: (diameter - symbolSize.height) / 2,
width: symbolSize.width,
height: symbolSize.height
)
image.draw(in: symbolRect)
}.withRenderingMode(.alwaysOriginal)
}
}