12345678910111213141516171819202122232425262728293031323334353637383940 |
- //
- // UIButton+Ex.swift
- // TSLiveWallpaper
- //
- // Created by 100Years on 2024/12/20.
- //
- extension UIButton {
- func setLocalizedImageAndTitle(image: UIImage?, title: String, for state: UIControl.State) {
- setImage(image?.imageFlippedForRightToLeftLayoutDirection(), for: state)
- setTitle(title, for: state)
-
- // 根据布局方向设置 titleEdgeInsets 和 imageEdgeInsets
- if UIView.userInterfaceLayoutDirection(for: semanticContentAttribute) == .rightToLeft {
- titleEdgeInsets = UIEdgeInsets(top: 0, left: -10, bottom: 0, right: 10)
- imageEdgeInsets = UIEdgeInsets(top: 0, left: -10, bottom: 0, right: 0)
- contentHorizontalAlignment = .right
- } else {
- titleEdgeInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: -10)
- imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
- contentHorizontalAlignment = .leading
- }
- }
-
- func setLocalizedImage(_ image: UIImage?, for state: UIControl.State) {
- guard let image = image else {
- setImage(nil, for: state)
- return
- }
- setImage(image.imageFlippedForRightToLeftLayoutDirection(), for: state)
- }
-
- func setLocalizedBackgroundImage(_ image: UIImage?, for state: UIControl.State) {
- guard let image = image else {
- setBackgroundImage(nil, for: state)
- return
- }
- setBackgroundImage(image.imageFlippedForRightToLeftLayoutDirection(), for: state)
- }
- }
|