代码之家  ›  专栏  ›  技术社区  ›  S.L. Barth is on codidact.com Monika Restecka

使用xCode 9和iOS 11时,状态栏下方的白色栏

  •  1
  • S.L. Barth is on codidact.com Monika Restecka  · 技术社区  · 8 年前

    我们正在使用RADStudio 10.1 Berlin和FireMonkey为iOS开发一个应用程序。

    在为iOS 11.1.2(15B202)使用Xcode 9.1(9B55)构建应用程序时,我们会在状态栏的正下方的顶部看到一个白色条。

    即使我们根本不使用任何样式本,也会发生这种情况。

    enter image description here

    我们所尝试的

    • 在较早的iOS版本上部署-没有问题。
    • 使用xCode 8编译-没有问题。
    • 在Android上部署-没有问题。

    • 更改“FormFactor”。设备从“桌面”到“iPad”,并添加“iPhone”。问题仍然存在,我们尝试的每一种组合都会出现奇怪的带有xCode 9和iOS 11的白色条。

    • 我们还尝试在iOS模拟器上运行此功能,但模拟器本身存在问题。

    • 设置属性 Border.Styling False . 问题仍然存在。

    • 设置表单。空字符串的标题。问题仍然存在。

    我们观察到白色条是 状态栏。状态栏可见 在上面 我们神秘的白色酒吧。
    它可能是某种导航栏,不幸的是FireMonkey似乎并没有让我们访问内置控件。

    我们在MCVE中复制了这一点。

    这是Delphi代码:

    unit Unit6;
    
    interface
    
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
      FMX.Controls.Presentation, FMX.StdCtrls, System.Actions, FMX.ActnList,
      FMX.StdActns, FMX.MediaLibrary.Actions;
    
    type
      TForm6 = class(TForm)
        ActionList1: TActionList;
        TakePhotoFromCameraAction1: TTakePhotoFromCameraAction;
        SpeedButton1: TSpeedButton;
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form6: TForm6;
    
    implementation
    
    {$R *.fmx}
    
    end.
    

    这是表格代码(FMX):

    object Form6: TForm6
      Left = 0
      Top = 0
      Border.Styling = False
      BorderIcons = []
      ClientHeight = 480
      ClientWidth = 640
      FormFactor.Width = 320
      FormFactor.Height = 480
      FormFactor.Devices = [iPad]
      DesignerMasterStyle = 0
      object SpeedButton1: TSpeedButton
        Action = TakePhotoFromCameraAction1
        Enabled = True
        ImageIndex = -1
        Position.X = 144.000000000000000000
        Position.Y = 272.000000000000000000
        Visible = True
      end
      object ActionList1: TActionList
        Left = 64
        Top = 88
        object TakePhotoFromCameraAction1: TTakePhotoFromCameraAction
          Category = 'Media Library'
        end
      end
    end
    

    所以问题是,我们如何摆脱这个奇怪的酒吧?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Hans    8 年前

    设置 BorderStyle none 可以解决此问题。 从 documentation of Borderstyle :

    在iOS应用程序中,没有任何应用程序会使窗体以全屏模式运行。具有 任何其他值,iOS应用程序都会显示iOS状态栏

    推荐文章