在XE8中设置IOS应用程序中状态栏的背景颜色

时间:2015-05-22 10:37:09

标签: delphi background firemonkey statusbar delphi-xe8

我想在新创建的Delphi XE8 Firemonkey应用程序中设置状态栏的背景颜色(和前景色)。使用状态栏我的意思是带有时间和wifi小部件的顶部栏。

我找不到它。我需要一些帮助: - )

谢谢, 爱德华

2 个答案:

答案 0 :(得分:0)

Harry Stahl撰写的“使用Delphi XE7和FireMonkey for Windows& MAC OS X进行跨平台开发”一书的推荐

  

TStatusbar(一种补偿缺失的“面板”的方法)

     

在VCL中   状态栏您可以在属性“面板”上显示文本   通过“SimpleText”属性。在FireMonkey状态栏中有   什么都没有,没有文字属性。所以你可以使用状态栏   作为容器,例如,插入标签。

     

更好的解决方案:   只需要一个TGrid!正如您在下面显示的屏幕截图中看到的那样,我   已经包含在StatusBar中的TGrid。在TGrid我有2   TStringColumns,一个TImageColumn,同样是一个TStringColumn和一个   TProgressColumn补充道。在Objectinspector中,我已经设置了   TGrid:

答案 1 :(得分:0)

表单的Fill.Color控制工具栏的颜色,此颜色的平均亮度控制文本是白色还是黑色

Borderstyle必须是<>无,否则工具栏将被隐藏。

如果你有多个表单,有点不清楚使用什么表单,但似乎它是你的项目文件中自动创建的最后一个表单。

以下是来自FMX.Platform.iOS.pas的一些相关源代码,用于记录文本的颜色:

procedure TPlatformCocoaTouch.UpdateStatusBarColor(const AForm: TCommonCustomForm);
  ...
  AppDelegate.MainWindow.RootViewController.SetStatusBarBackgroundColor((AForm as TCustomForm).Fill.Color);
  ...

procedure TFMXViewController.SetStatusBarBackgroundColor(const ABackgroundColor: TAlphaColor);
  ...
  FStatusBarLuminance := Luminance(ABackgroundColor);
  ...

function TFMXViewController.preferredStatusBarStyle: UIStatusBarStyle;
begin
  if FStatusBarLuminance < 0.5 then
    Result := UIStatusBarStyleLightContent
  else
    Result := UIStatusBarStyleDefault;
end;

PS。我还有另一个未解答的问题,关于如何make the statusbar transparent,这是本机iOS 7+行为。