Skip to content

Commit 5a3d8e9

Browse files
authored
Поправил tintColor для всех алертов (#271)
Исправил баг с `accentColor` у алертов, [обсуждение](https://developer.apple.com/forums/thread/673147). Без этой настройки у всех алертов при первом появлении стандартный `tintColor` (синий), а при нажатии он меняется на `AccentColor` в проекте
1 parent 3f1f731 commit 5a3d8e9

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

SwiftUI-WorkoutApp.xcodeproj/project.pbxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -873,7 +873,7 @@
873873
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
874874
CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY = YES;
875875
CODE_SIGN_STYLE = Automatic;
876-
CURRENT_PROJECT_VERSION = 3;
876+
CURRENT_PROJECT_VERSION = 4;
877877
DEVELOPMENT_ASSET_PATHS = "SwiftUI-WorkoutApp/Preview\\ Content/PreviewContent.swift SwiftUI-WorkoutApp/Preview\\ Content";
878878
DEVELOPMENT_TEAM = CR68PP2Z3F;
879879
ENABLE_PREVIEWS = YES;
@@ -923,7 +923,7 @@
923923
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
924924
CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY = YES;
925925
CODE_SIGN_STYLE = Automatic;
926-
CURRENT_PROJECT_VERSION = 3;
926+
CURRENT_PROJECT_VERSION = 4;
927927
DEVELOPMENT_ASSET_PATHS = "SwiftUI-WorkoutApp/Preview\\ Content/PreviewContent.swift SwiftUI-WorkoutApp/Preview\\ Content";
928928
DEVELOPMENT_TEAM = CR68PP2Z3F;
929929
ENABLE_PREVIEWS = YES;

SwiftUI-WorkoutApp/Libraries/SWAlert/Sources/SWAlert/SWAlert.swift

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,19 @@ public final class SWAlert {
88

99
/// Показывает системный алерт с заданными параметрами
1010
/// - Parameters:
11-
/// - title: Заголовок. Если передать `nil`, то сообщение выделится жирным. Если передать текст или пустую строку, будет без
12-
/// заголовка, и сообщение будет со стандартным шрифтом
11+
/// - title: Заголовок. Если передать `nil`, то сообщение выделится жирным. Если передать текст или пустую строку,
12+
/// будет без заголовка, и сообщение будет со стандартным шрифтом
1313
/// - message: Текст сообщения
1414
/// - closeButtonTitle: Заголовок кнопки для закрытия алерта
1515
/// - closeButtonStyle: Стиль кнопки для закрытия алерта
16-
/// - closeButtonTintColor: Цвет кнопки для закрытия алерта. Если не настроить явно, то при появлении будет системный (синий) цвет, а
17-
/// при нажатии он изменится на `AccentColor` в проекте
1816
public func presentDefaultUIKit(
1917
title: String? = "",
2018
message: String,
2119
closeButtonTitle: String = "Ok",
22-
closeButtonStyle: UIAlertAction.Style = .default,
23-
closeButtonTintColor: UIColor? = .systemGreen
20+
closeButtonStyle: UIAlertAction.Style = .default
2421
) {
2522
guard currentAlert == nil, let topMostViewController else { return }
2623
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
27-
alert.view.tintColor = closeButtonTintColor
2824
alert.addAction(
2925
.init(
3026
title: closeButtonTitle,

SwiftUI-WorkoutApp/SwiftUI_WorkoutAppApp.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,20 @@ private extension SwiftUI_WorkoutAppApp {
8484
}
8585
UITabBar.appearance().scrollEdgeAppearance = tabBarAppearance
8686
UINavigationBar.appearance().scrollEdgeAppearance = navBarAppearance
87+
fixAlertAccentColor()
8788
if !DeviceOSVersionChecker.iOS16Available {
8889
UITextView.appearance().backgroundColor = .clear
8990
}
9091
}
9192

93+
/// Исправляет баг с accentColor у алертов, [обсуждение](https://developer.apple.com/forums/thread/673147)
94+
///
95+
/// Без этой настройки у всех алертов при первом появлении стандартный tintColor (синий),
96+
/// а при нажатии он меняется на `AccentColor` в проекте
97+
func fixAlertAccentColor() {
98+
UIView.appearance().tintColor = .accent
99+
}
100+
92101
func prepareForUITestIfNeeded() {
93102
if ProcessInfo.processInfo.arguments.contains("UITest") {
94103
UserDefaults.standard.removePersistentDomain(forName: Bundle.main.bundleIdentifier!)

0 commit comments

Comments
 (0)