加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

XE8 for iOS 状态栏的几种效果

发布时间:2020-12-15 04:36:57 所属栏目:大数据 来源:网络整理
导读:XE8实现iOS 状态栏的几种效果: 一、状态栏底色: 开一个新工程。 设定Fill.Color 颜色属性。 设定Fill.Kind = Solid。 二、隐藏状态栏(全屏): 开一个新工程。 设定BorderStyoe = None。 三、透明状态栏(能见底图): 开一个新工程。 设定底图 Fill.Bitm

XE8实现iOS 状态栏的几种效果:

一、状态栏底色:

  1. 开一个新工程。
  2. 设定Fill.Color 颜色属性。
  3. 设定Fill.Kind = Solid。

二、隐藏状态栏(全屏):

  1. 开一个新工程。
  2. 设定BorderStyoe = None。

三、透明状态栏(能见底图):

  1. 开一个新工程。
  2. 设定底图 Fill.Bitmap.Bitmap
  3. 设定 Fill.Bitmap.WrapMode = TitleStretch
  4. 设定 Fill.Kind = Bitmap
  5. 设定 FullScreen = True
  6. 设定 。(利用修改源码,让指定為 ToolWindows 来显示透明效果)

支持 iOS 5.x

与上述做法相同,只需再多加一个设定:

Project > Options > Version Info (在表格上按鼠标右键来增加)

KeyValue

修改方法:

请将源码 FMX.Platform.iOS.pas复制到自己的工程目录里,再进行修改。

找到 TPlatformCocoaTouch.CalculateFormViewFrame加入下面代码:

TPlatformCocoaTouch.CalculateFormViewFrame( IsPopupForm(AForm) = == <span style="color: #008000;">{<span style="color: #008000;">+++><span style="color: #008000;">} <span style="color: #008000;">//<span style="color: #008000;"> 加入下面代码
<span style="color: #0000ff;">if
AForm.BorderStyle = TFmxFormBorderStyle.ToolWindow <span style="color: #0000ff;">then

<span style="color: #0000ff;">begin
<span style="color: #000000;">
StatusBarHeight :
= <span style="color: #800080;">0
<span style="color: #000000;">;
FStatusBarHeight :
= <span style="color: #800080;">0
<span style="color: #000000;">;
Result.origin :
= CGPointMake(<span style="color: #800080;">0
,<span style="color: #800080;">0
<span style="color: #000000;">);
<span style="color: #0000ff;">end
<span style="color: #0000ff;">else
<span style="color: #008000;">{<span style="color: #008000;"><+++<span style="color: #008000;">} <span style="color: #008000;">//<span style="color: #008000;"> 加入上面代码

<span style="color: #0000ff;"&gt;if</span> AForm.BorderStyle <> TFmxFormBorderStyle.None <span style="color: #0000ff;"&gt;then</span>
<span style="color: #0000ff;"&gt;begin</span><span style="color: #000000;"&gt;

... 略 ...

<span style="color: #0000ff;">end;

状态栏下方线 (2015/12/15 补充):

目前在某些真机的状态栏下方会显示一条线,见下图:

实测有线:iPhone 6s Plus (只有真机才看的到),(其它皆无此线,如:iPad mini 2,iPhone 4,iPhone 4s)

问题造成原因:不清楚,猜测应该是 Delphi 的问题(如果在意此问题,请自行去提交 QC)。

方案:

  1. 将 Form.Transparency 设为 True
  2. 放一个 TRectangle 到 Form 里
    1. Rectangle1.Align 设为Contents
    2. Rectangle1.Stroke.Kind 设为 None
    3. Rectangle1.Fill.Color 设为 $FFFEFEFE
    4. Rectangle1.HitTest 设为 False
  3. 设定好以上,发布到真机,状态栏下方的线就看不见了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!