В статье мы рассмотрим, как изменить цвет фона и шрифта статус-бара в приложении Delphi XE8 FireMonkey для iOS. Статус-бар – это верхняя панель, отображающая время и значки Wi-Fi и т.д.
Подтвержденный ответ
Цвет фона статус-бара определяется свойством Fill.Color формы. Средняя яркость этого цвета определяет цвет шрифта (белый или черный). Свойство BorderStyle формы должно быть установлено в значение, отличное от None, иначе статус-бар будет скрыт.
Если в проекте несколько форм, непонятно, какая форма используется, но, похоже, используется последняя форма, автоматически созданная в файле проекта.
В коде FMX.Platform.iOS.pas есть функция TPlatformCocoaTouch.UpdateStatusBarColor, которая обновляет цвет статус-бара в зависимости от цвета фона формы:
procedure TPlatformCocoaTouch.UpdateStatusBarColor(const AForm: TCommonCustomForm);
begin
...
AppDelegate.MainWindow.RootViewController.SetStatusBarBackgroundColor((AForm as TCustomForm).Fill.Color);
...
end
Функция TFMXViewController.SetStatusBarBackgroundColor устанавливает цвет фона статус-бара:
procedure TFMXViewController.SetStatusBarBackgroundColor(const ABackgroundColor: TAlphaColor);
begin
...
FStatusBarLuminance := Luminance(ABackgroundColor);
...
end
Функция TFMXViewController.preferredStatusBarStyle определяет стиль статус-бара в зависимости от средней яркости цвета фона:
function TFMXViewController.preferredStatusBarStyle: UIStatusBarStyle;
begin
if FStatusBarLuminance < 0.5 then
Result := UIStatusBarStyleLightContent
else
Result := UIStatusBarStyleDefault;
end;
Альтернативный ответ
В книге "Разработка кроссплатформенных приложений с использованием Delphi XE7 и FireMonkey для Windows и MAC OS X" автор Хarry Stahl рекомендует использовать TGrid в качестве статус-бара, добавив в него нужные столбцы и элементы управления.
Заключение
Изменение цвета фона и шрифта статус-бара в приложении Delphi XE8 FireMonkey для iOS можно осуществить, изменив свойство Fill.Color формы и учитывая среднюю яркость цвета фона для определения цвета шрифта. Также можно использовать альтернативный подход с использованием TGrid в качестве статус-бара.
В статье описывается процесс изменения цвета фона и шрифта статус-бара в приложении Delphi XE8 FireMonkey для iOS.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS