我知道如何在 iOS 应用程序中使用图像。但我不知道如何使用开发者网站中提到的默认图像,例如共享或书签图标。
我想使用它们。我需要下载这些图像集还是 Xcode 中提供的图像?
如果我们必须下载它们,我可以在哪里获得这些图标?
现在从 Swift 5.1 和 Xcode 11 开始,您可以使用新的 UIImage Api
UIImage(systemName: "imageName")
从 1500 多个系统图像中加载 1 个图像,这些图像基于矢量,因此不必担心不同尺寸的质量
Swift 5.1,Xcode 11
这是 SF Symbols 的一个示例。苹果提供了大约 1500 个不同权重和比例的系统映像。
let homeSymbolConfiguration = UIImage.SymbolConfiguration(pointSize: 55, weight: .black)
let homeImage = UIImage(systemName: "house", withConfiguration: homeSymbolConfiguration)
let width = homeImage?.size.width
let height = homeImage?.size.height
let homeButton = UIButton(frame: CGRect(x: 100, y: 100, width: width!, height: height!))
homeButton.tintColor = UIColor.gray
homeButton.setImage(homeImage, for: .normal)
view.addSubview(homeButton)
Apple 提供了 Mac 应用程序 SF Symbols 以及所有系统映像。它们都是 svg 格式,这意味着它们是可扩展的。您可以导出并编辑它们。
关注 WWDC 2019 第 206 场会议。 https://developer.apple.com/videos/play/wwdc2019/206/
开发人员无法直接访问这些图像。我的意思是你不能像这样初始化图像对象:
UIImage *image = [UIImage imageNamed:@"name_of_system_image"];
但是您可以使用系统类型来显示某些图像。例如,您可以使用提供标准图标的系统类型来初始化
UIBarButtonItem
:其中
UIBarButtonSystemItem
提供此类类型:
UIBarButtonSystemItemDone, UIBarButtonSystemItemCancel,
UIBarButtonSystemItemEdit,
UIBarButtonSystemItemSave,
UIBarButtonSystemItemAdd,
UIBarButtonSystemItemFlexibleSpace,
UIBarButtonSystemItemFixedSpace,
UIBarButtonSystemItemCompose,
UIBarButtonSystemItemReply,
UIBarButtonSystemItemAction,
UIBarButtonSystemItemOrganize,
UIBarButtonSystemItem书签,
UIBarButtonSystemItemSearch,
UIBarButtonSystemItemRefresh,
UIBarButtonSystemItemStop,
UIBarButtonSystemItemCamera,
UIBarButtonSystemItemTrash,
UIBarButtonSystemItemPlay,
UIBarButtonSystemItemPause,
UIBarButtonSystemItemRewind,
UIBarButtonSystemItemFastForward,
UIBarButtonSystemItemUndo,
UIBarButtonSystemItemRedo,
UIBarButtonSystemItemPageCurl
快速:对于系统映像,只需执行即可
imageView?.image = UIImage(systemName: "face.smiling")
快乐编码:)点赞
对于旧版 iOS 版本:
if #available(iOS 13.0, *) {
cell.buttonImageIcon.image = UIImage(systemName: "info.circle.fill")
cell.profileButton.tintColor = UIColor.white
cell.profileButton.setTitle("PERSONAL INFORMATION", for: .normal)
} else {
// Fallback on earlier versions
}
lazy var scanImg: UIImageView = {
let img = UIImageView()
img.image = UIImage(systemName: "sensor.tag.radiowaves.forward")
img.tintColor = .systemBlue
img.contentMode = .scaleAspectFit
return img
}()