Обратите внимание, что мне нужно использовать UIKit, а не SwiftUI.
Ниже кода:
Код: Выделить всё
import UIKit
import SnapKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let container = UIVisualEffectView()
let effect = UIGlassContainerEffect()
effect.spacing = 10
container.effect = effect
let uIStackView = UIStackView()
uIStackView.axis = .horizontal
uIStackView.addArrangedSubview(button(systemName: "arrow.uturn.backward"))
uIStackView.addArrangedSubview(button(systemName: "arrow.trianglehead.2.clockwise.rotate.90"))
uIStackView.addArrangedSubview(button(systemName: "speaker.wave.3.fill"))
uIStackView.addArrangedSubview(button(systemName: "star.fill"))
container.contentView.addSubview(uIStackView)
uIStackView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
view.addSubview(container)
container.snp.makeConstraints { make in
make.center.equalToSuperview()
}
}
func button(systemName : String) -> UIButton {
let config = UIImage.SymbolConfiguration(pointSize: 14)
let button = UIButton()
button.setImage(UIImage(systemName: systemName, withConfiguration: config), for: .normal)
button.configuration = .glass()
let padding = 15.0
button.configuration?.contentInsets = NSDirectionalEdgeInsets(top: padding, leading: padding, bottom: padding, trailing: padding)
return button
}
}

Как видите, каждая кнопка отображается как отдельная, а не как отдельная таблетка.
В этой статье используется glassEffectUnion для достижения этой цели в SwiftUI. Как это можно сделать в Swift вместо SwiftUI?
Подробнее здесь: https://stackoverflow.com/questions/798 ... o-a-single
Мобильная версия