46

我正在声明一个这样的按钮:

let menuButton = UIButton()

之后,我尝试更改它的参数并在 LBTATools(一个 pod)的帮助下使用此功能设置他在视图上的位置:

fileprivate func setMenuButtonUI() {
        menuButton.setImage(UIImage(systemName: "line.horizontal.3.decrease.circle.fill"), for: .normal)
        view.addSubview(menuButton)
        menuButton.anchor(top: view.safeAreaLayoutGuide.topAnchor, leading: view.leadingAnchor, bottom: nil, trailing: nil, padding: .init(top: 20, left: 60, bottom: 0, right: 0), size: .init(width: 40, height: 40))
        menuButton.setupShadow(opacity: 1, radius: 5, offset: .zero, color: .darkGray)
        menuButton.tintColor = .red
    }

一切运行良好,我得到了正确的颜色、位置甚至尺寸。唯一的问题是它的大小,我不能用所有常用的方法来改变它,比如menuButton.imageView?.contentMode = .scaleAspectFit等等。

可能是因为它是 SF Symbol 而不是普通图像。

某人的帮助将不胜感激。

谢谢

4

2 回答 2

108

您可以使用SymbolConfiguration下面的示例代码中的方法来执行此操作:

let largeConfig = UIImage.SymbolConfiguration(pointSize: 140, weight: .bold, scale: .large)
       
let largeBoldDoc = UIImage(systemName: "doc.circle.fill", withConfiguration: largeConfig)

button.setImage(largeBoldDoc, for: .normal)

在此处输入图像描述

于 2020-03-11T17:23:07.150 回答
0

目标 C:

UIImageSymbolConfiguration * configuration = [UIImageSymbolConfiguration configurationWithPointSize:30 weight:UIImageSymbolWeightBold scale:UIImageSymbolScaleLarge];
UIImage * image = [UIImage systemImageNamed:@"" withConfiguration:configuration];
[_btn setImage:image forState:UIControlStateNormal];
于 2021-12-01T11:54:09.793 回答