启动界面设置
在打包IOS包时,需要我们选择app的启动页面配置
在HBuilderX内,有三个样式的选择
第一个,是通用界面,就是一个启动页是一个圆形的应用图标加上应用名称
第二个,自定义的启动图,目前无法通过AppStore的审核了
第三个,自定义storyBoard启动页面,今天我们主要讲这个的设置方法
自定义storyBoard启动页面
HBuilderX官方给的制作方法有两个
一是使用提供的模版,在此基础上进行自定义(这个不需要用到Mac和XCode)
二是使用XCode自行制作
官网地址:uni-app官网 (dcloud.net.cn)
模版下载
因为本人电脑是WIndows11,没有Mac电脑和XCode,所以就用模版达到自己想要的效果
在官网地址内,点击下载
下载好的文件是个压缩包,解压
上面即为文件内的结构
readme文件内有自定义的方法,下面我也讲一下
readme文件
此 storyboard 文件适用于各种 iPhone 及 iPad 设备的横竖屏,支持自定义界面元素包括
-
页面背景图片或背景颜色
-
中间显示图片
-
底部显示文字及颜色
注:每一项都是可选的(比如只显示背景图片,按照下面的方法只提供背景图片即可)
默认效果如下:
自定义方法:使用 HBuilderX 打开 LaunchScreen.storyboard
文件,作为xml文件编辑自定义修改部分样式。
自定义界面背景
页面背景支持设置背景色
或设置背景图片
,默认为使用背景色,值为systemBackgroundColor,会跟随系统设置的模式自动修改颜色,正常模式为白色暗黑模式为黑色,
自定义背景色
替换第42行
color 节点为下面的代码,并将 red、green、blue 属性值修改为自己需要的颜色,取值范围为0到1
自定义背景图
图片要求
设备 | 尺寸要求 | 命名规范 | 说明 |
---|---|---|---|
iPhone 竖屏 | 以iPhoneX的尺寸设计 | dc_launchscreen_portrait_background@2x.png 、 dc_launchscreen_portrait_background@3x.png | 以 iPhoneX 竖屏为模板设计图片,并输出@2x、@3x图片,注意命名规范 |
iPhone 横屏 | 以iPhoneX的尺寸设计 | dc_launchscreen_landscape_background@2x.png 、 dc_launchscreen_landscape_background@3x.png | 以 iPhoneX 横屏为模板设计图片,并输出@2x、@3x图片,注意命名规范 |
iPad(不区分横竖屏) | 以 iPad 9.7 的尺寸设计 | dc_launchscreen_pad_background@2x.png 、 dc_launchscreen_pad_background@3x.png | 以 iPad 9.7 设备为模板设计图片,并输出@2x、@3x图片,注意命名规范 |
将设计好的图片放到根目录即可;
注:如果您不需要背景图片,不存放相应的图片即可;
自定义中间显示的图片
请将目录中的dc_launchscreen_icon@2x.png
、dc_launchscreen_icon@3x.png
图片替换为您自己的图片
注:如果您不需要中间的图片,不存放相应的图片即可;
自定义底部文字
-
修改文字 修改第
35行
label节点的 text 属性值即可,设置为空字符串则不显示文字
- 修改文字颜色 替换第
38行
color节点为下面的代码,并将 red、green、blue属性值修改为自己需要的颜色,取值范围为0到1
readme未提到的
因为本人的需求会更复杂一些,研究了源代码实现了下面的效果
底部文字两行排列
因为源代码中,只有一个label标签,并且文字的位置太靠下了,我的需求就是两行文本居中对齐,并位置靠上的去展示
这里我用上面的示例图举例:
在 LaunchScreen.storyboard
文件的第35行,是label标签
<label opaque="NO" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="这是第一行" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QBH-Ne-rcx">
<rect key="frame" x="153" y="750" width="108" height="34"/>
<fontDescription key="fontDescription" type="system" pointSize="20"/>
<color key="textColor" red="215/255" green="47/255" blue="106/255" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
先分析一下标签内的一些属性
创建第二个label文本
把第一个label标签复制一份放在下面,先改动 id 值,改成唯一的Id
调整第一个label的位置
在第53行,有一行代码为
<constraint firstItem="QBH-Ne-rcx" firstAttribute="bottom" secondItem="Ze5-6b-2t3" secondAttribute="bottom" constant="-70" id="5MD-Bb-oGe"/>
这行代码目的是为了实现约束,是约束表达式
下面分析一下这行代码的含义
显而易见,firstItem 为 第一个label 标签, secondItem为整个视图的标签id,所以这里的约束是约束的第一行文字与整个页面底部的位置,而控制位置的属性就是 constant
所以这里我们只需要调整 constant 值的大小就可以达到移动第一行文本的y轴位置,负值越大越靠上,越小越靠下
调整第一个label的字体大小
是由 <fontDescription> 标签内的 pointSize 属性去控制的
就像 css 去设置字体大小一样
调整第二个label的位置和字体大小
位置:
把第一个约束表达式复制一份放到第一个约束表达式的后面,
然后把 firstItem 换成第二个label的id,并且修改 constant 的值,
这个值最好比第一个约束表达式值要大,例,第一个为 -70,第二个为 -50,之所以是有20的差值,是因为第一个label的字体大小为20,可以以此为参考
字体大小:
同理,调整 <fontDescription> 标签内的 pointSize 属性
我这里第二行字要比第一行字的字数多,所以我把 pointSize 调成了 16
需要注意的
修改文本颜色
底部文本修改颜色的时候 red green blue 值是只能取值为 0-1 之间的
所以我们可以写成 100/255 这样的形式
通过 rgb 我们获取到字体的三个颜色值,假如为(40,208,149)(青绿色)
那么我们的 red green blue 就不能写成,这样写就完全写反了
正确写法是:
需要进行一个计算,例如红色的40,需要用255减去40,得到215,就是我们要写的值
到此为止,我的需求就达到了,就是一个两行文本并修改位置,字体颜色,字体大小的效果
剩余的我没有去试,如果未来需要用到,这里了可能还会持续更新本文
欢迎各位交流!