如何以编程方式为UIButton添加系统图标?

问题描述 投票:7回答:4

UIButton添加自定义图像或背景很容易,但是似乎没有编程方式为UIButton设置以下默认iOS图标之一,我知道它可以应用于导航栏按钮,不需要,我想将其应用于简单的UIButton,有任何提示吗?

enter image description here

ios swift uibutton
4个回答
1
投票

对于Swift 5,语法为:


2
投票
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
    }
}

0
投票

现在您可以做


-3
投票

摘自Apple文档:init(type:)

© www.soinside.com 2019 - 2024. All rights reserved.