对于 Swift 5,语法如下:
button.setImage(UIImage(systemName: "search"), for: .normal)
您还可以通过添加 SymbolConfiguration
来设置图标的权重:
let boldConfig = UIImage.SymbolConfiguration(weight: .bold)
let boldSearch = UIImage(systemName: "search", withConfiguration: boldConfig)
button.setImage(boldSearch, for: .normal)
请参考苹果文档中的可用名称(API列),或者在界面构建器中选择UIButton并在属性检查器中选择Image,这将为您提供所有可用图标的列表。
@available(iOS 13.0, *)
@objc public extension UIImage{
var assetName: String? {
guard let imageAsset = imageAsset else { return nil }
return imageAsset.value(forKey:"assetName") as? String
}
static var square_and_arrow_up: UIImage? {
return UIImage(systemName: "square.and.arrow.up")
}
static var square_and_arrow_up_fill: UIImage? {
return UIImage(systemName: "square.and.arrow.up.fill")
}
static var square_and_arrow_down: UIImage? {
return UIImage(systemName: "square.and.arrow.down")
}
...
截图:
GitHub:链接
import UIKit
extension UIImage {
public convenience init?(_ systemItem: UIBarButtonItem.SystemItem) {
guard let sysImage = UIImage.imageFrom(systemItem: systemItem)?.cgImage else {
return nil
}
self.init(cgImage: sysImage)
}
private class func imageFrom(systemItem: UIBarButtonItem.SystemItem) -> UIImage? {
let sysBarButtonItem = UIBarButtonItem(barButtonSystemItem: systemItem, target: nil, action: nil)
//MARK:- Adding barButton into tool bar and rendering it.
let toolBar = UIToolbar()
toolBar.setItems([sysBarButtonItem], animated: false)
toolBar.snapshotView(afterScreenUpdates: true)
if let buttonView = sysBarButtonItem.value(forKey: "view") as? UIView{
for subView in buttonView.subviews {
if subView is UIButton {
let button = subView as! UIButton
let image = button.imageView!.image!
return image
}
}
}
return nil
}
}
let button = UIButton() ;
let systemImage = UIImage(systemItem: .trash) ;
button.setImage(systemImage, for: .normal)
button.setImage(UIImage(.search), for: .normal)
var logoImage :[UIImage?] = []
// make an array of UIImage
// load image in asset and append in array
@IBOutlet weak var table1: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
logoImage.append(UIImage(named: "image0"))
logoImage.append(UIImage(named: "image1"))
logoImage.append(UIImage(named: "image2"))
logoImage.append(UIImage(named: "image3"))
logoImage.append(UIImage(named: "image4"))
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell") as? CustomCell{
cell.iconImage.image = self.logoImage[indexPath.row]
return cell
}
return UITableViewCell()
}