uniapp-IOS自定义启动页面模版的修改

启动界面设置

        在打包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

<color key="backgroundColor" red="0.83516160100000003" green="0.88008347600000003" blue="0.88008347600000003" alpha="1" colorSpace="calibratedRGB"/>

自定义背景图
图片要求
设备尺寸要求命名规范说明
iPhone 竖屏以iPhoneX的尺寸设计dc_launchscreen_portrait_background@2x.pngdc_launchscreen_portrait_background@3x.png以 iPhoneX 竖屏为模板设计图片,并输出@2x、@3x图片,注意命名规范
iPhone 横屏以iPhoneX的尺寸设计dc_launchscreen_landscape_background@2x.pngdc_launchscreen_landscape_background@3x.png以 iPhoneX 横屏为模板设计图片,并输出@2x、@3x图片,注意命名规范
iPad(不区分横竖屏)以 iPad 9.7 的尺寸设计dc_launchscreen_pad_background@2x.pngdc_launchscreen_pad_background@3x.png以 iPad 9.7 设备为模板设计图片,并输出@2x、@3x图片,注意命名规范

将设计好的图片放到根目录即可;

注:如果您不需要背景图片,不存放相应的图片即可;

自定义中间显示的图片

请将目录中的dc_launchscreen_icon@2x.pngdc_launchscreen_icon@3x.png图片替换为您自己的图片

注:如果您不需要中间的图片,不存放相应的图片即可;

自定义底部文字

  • 修改文字 修改第35行 label节点的 text 属性值即可,设置为空字符串则不显示文字

<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="xxx提供计算服务" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QBH-Ne-rcx">

  • 修改文字颜色 替换第38行 color节点为下面的代码,并将 red、green、blue属性值修改为自己需要的颜色,取值范围为0到1

<color key="textColor" red="0.83516160100000003" green="0.88008347600000003" blue="0.88008347600000003" alpha="1" colorSpace="calibratedRGB"/>

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:

        代表用于显示文本的用户界面控件

opaque="NO":

        表示标签透明,不会阻挡背景

userInteractionEnabled="NO":

        标签不响应用户点击,主要用于纯文本显示

contentMode="center":

        文本居中显示

horizontalHuggingPriority="251" 和 verticalHuggingPriority="251":

        是 Auto Layout 的优先级,用于调整内容在父视图内的对齐

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">: 这代表一个矩形区域

  • key:是用于识别或命名这个矩形的标识符
  • x 和 y:矩形左上角的坐标,分别是153个像素和750个像素
  • width 和 height:矩形的宽度为108像素,高度为34像素

 

第三行

<fontDescription key="fontDescription" type="system" pointSize="20"/>: 这描述了一个字体属性

  • fontDescription:描述字体类型的键。
  • type="system":提示该字体是系统预设的。
  • pointSize="20":字体大小,为20像素。

 

<color ..../> 这定义了文本的颜色

  • textColor是指定给标签文本的颜色。
  • red green blue 颜色值:红、绿、蓝通道,设置颜色
  • alpha="1"  颜色透明度设为1(完全不透明)
  • customColorSpace="sRGB" 使用自定义颜色空间sRGB。
创建第二个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"/>

        这行代码目的是为了实现约束,是约束表达式

        下面分析一下这行代码的含义

"QBH-Ne-rcx""Ze5-6b-2t3":

        两个元素,firstItem 和  secondItem

firstItem:

        这表示代码影响的第一部分(是一个父视图或布局容器)

firstAttribute:

        表示影响这个元素的第一个布局属性。这里是bottom,即元素的底部

secondItem:

        是第二个元素(可能是另一个子视图或相关布局元素)

secondAttribute:

        是第二个元素的属性,也是bottom

constant: -70

        是一个常数,说明两个指定布局属性之间的距离需要减去70个点(Swift中的单位通常是Pixel)。

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 就不能写成,这样写就完全写反了

        red="40/255" green="208/255" blue="149/255"

        正确写法是:

        red="215/255" green="47/255" blue="106/255"     

        需要进行一个计算,例如红色的40,需要用255减去40,得到215,就是我们要写的值

到此为止,我的需求就达到了,就是一个两行文本并修改位置,字体颜色,字体大小的效果

剩余的我没有去试,如果未来需要用到,这里了可能还会持续更新本文

欢迎各位交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/535959.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

企业级网络安全:入侵防御实时阻止,守护您的业务安全

随着互联网技术的快速发展&#xff0c;企业级网络安全问题日益凸显。在这个数字化时代&#xff0c;企业的业务安全不仅关系到企业的形象和声誉&#xff0c;还直接影响到企业的生存和发展。因此&#xff0c;加强企业级网络安全&#xff0c;预防和抵御各种网络攻击已成为企业的重…

lua学习笔记17(面相对象之继承)

print("*****************************面相对象继承*******************************") object{} object.id1 function object:new()local obj{}self.__indexself setmetatable(obj,self)return obj end function object:text()--面相对象的类其实就是基于table来实现…

备考ICA----Istio实验20---跨网络Primary-Remote主从架构部署

备考ICA----Istio实验20—跨网络Primary-Remote主从架构部署 按照本实验在 cluster1&#xff08;主集群&#xff09;上安装 Istio 控制平面&#xff0c;并将 cluster2&#xff08;远程集群&#xff09;配置为使用 cluster1 中的控制平面。群集 cluster1 在 network1 网络上&am…

基于Springboot的笔记记录分享网站(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的笔记记录分享网站&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

提升法律文书起草效率:AlphaGPT 助力律师快速生成诉讼和仲裁文件

法律文书起草对于法律专业人士而言是一项基础而关键的任务。无论是民事、刑事还是行政诉讼&#xff0c;以及仲裁案件&#xff0c;精确的法律文书撰写对于案件的成功至关重要。然而&#xff0c;这一过程往往既耗时又复杂&#xff0c;尤其是在处理复杂的案情和面对当事人难以理解…

浅谈网络安全威胁与防御策略

企业网络安全威胁概述 外部威胁&#xff1a;来自网络安全威胁&#xff0c;比如DDOS攻击&#xff0c;病毒&#xff0c;sql注入&#xff0c;木马&#xff0c;蠕虫&#xff0c;等网络入侵&#xff0c;网络扫描&#xff0c;垃圾邮件&#xff0c;钓鱼邮件&#xff0c;针对web的攻击…

Docker Redis Debian服务器版

1.使用官方安装脚本自动安装docker 安装命令如下&#xff1a; curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh 如果安装提示 -bash sudo command not found 则需要 #update sudo apt-get update sudo apt-get install sudo再执行安装脚本1 安装…

WS2812B彩灯

目录 1、介绍 2、参数 3、引脚功能 4、应用电路 5、Code 1、介绍 WS2812是一种智能控制LED灯源&#xff0c;集成了控制电路和RGB芯片在一个5050封装组件中。它的主要特点和技术规格如下&#xff1a; 集成设计&#xff1a;WS2812将控制电路和RGB芯片集成在同一个封装中&…

Redis(三) String字符串

文章目录 前言常见命令SETGETMSETMGETINCRINCRBYDECRDECRBYINCRBYFLOATAPPENDGETRANGESETRANGESTRLEN命令小结 前言 Redis 的数据有很多种数据类型&#xff0c;包括字符串类型、列表类型、哈希类型、集合类型、有序集合类型等。这几种数据类型是针对于 value 来说的&#xff0…

数据应用OneID:ID-Mapping Spark GraphX实现

前言 说明 以用户实体为例&#xff0c;ID 类型包含 user_id 和 device_id。当然还有其他类型id。不同id可以获取到的阶段、生命周期均不相同。 device_id 生命周期通常指的是一个设备从首次被识别到不再活跃的整个时间段。 user_id是用户登录之后系统分配的唯一标识&#xff…

ELK及ELFK排错

目录 一、ELK及ELFK排错思路 1.1filebeat侧排查 1.2logstash侧排查 1.3ES、kibana侧问题 一、ELK及ELFK排错思路 1.1filebeat侧排查 第一步&#xff1a;排查filebeat上的配置文件有没有写错&#xff0c;filebeat的配置文件是yml文件&#xff0c;一定要注意格式。 第二步…

Harmony鸿蒙南向驱动开发-HDMI接口使用

功能简介 HDMI&#xff08;High Definition Multimedia Interface&#xff09;&#xff0c;即高清多媒体接口&#xff0c;主要用于DVD、机顶盒等音视频Source到TV、显示器等Sink设备的传输。 HDMI以主从方式工作&#xff0c;通常有一个Source端和一个Sink端。 HDMI接口定义了…

Harmony鸿蒙南向驱动开发-MIPI CSI接口使用

功能简介 CSI&#xff08;Camera Serial Interface&#xff09;是由MIPI联盟下Camera工作组指定的接口标准。CSI-2是MIPI CSI第二版&#xff0c;主要由应用层、协议层、物理层组成&#xff0c;最大支持4通道数据传输、单线传输速度高达1Gb/s。 物理层支持HS&#xff08;High …

Flutter - 环境配置提示 cmdline-tools component is missing

问题&#xff1a; flutter doctor运行命令 flutter doctor 报错&#xff1a; Android toolchain - develop for Android devices (Android SDK version 30.0.2) ✗ cmdline-tools component is missing Run path/to/sdkmanager --install "cmdline-tools;lates…

NI-LabView的DAQ缺少或丢失的解决办法(亲测有效)

DAQmx在Labview中不显示或缺失 问题&#xff1a;在NI Packasge Manager安装完DAQ后在labview中不显示控件解决办法 问题&#xff1a;在NI Packasge Manager安装完DAQ后在labview中不显示控件 在打开测量I/O时&#xff0c;见不到 DAQmx&#xff0c;或者在Express中见不到DAQ助手…

《战神4》和《战神5》有什么联系吗 苹果电脑如何运行《战神4》苹果电脑玩战神 Mac玩游戏 战神5攻略 crossover激活码

《战神4》&#xff08;God of War 2018&#xff09;和《战神5》&#xff08;God of War: Ragnark&#xff09;是一对引人注目的游戏作品&#xff0c;它们不仅在游戏界引起了广泛的关注&#xff0c;也给玩家带来了深入探索北欧神话世界的机会。这两部游戏之间的联系不仅体现在剧…

Docker 安装 RocketMQ

目录 一、新建两个配置文件 1.1 创建docker-compose.yml文件 1.2 .新建broker.conf文件 二、运行 三、可视化界面 一、新建两个配置文件 1.1 创建docker-compose.yml文件 version: 3.5 services:rmqnamesrv:image: foxiswho/rocketmq:servercontainer_name: rmqnamesrvports…

集合系列(十九) -List与数组互转操作介绍

一、数组转List 方式一 通过 Arrays.asList(strArray) 方式&#xff0c;将数组转换List&#xff0c;但不能对List增删&#xff0c;只能查改&#xff0c;否则抛异常&#xff0c;例子如下&#xff1a; public static void main(String[] args) {//创建一个字符串数组String[] …

MobX入门指南:快速上手状态管理库

一、什么是MobX MobX 是一个状态管理库&#xff0c;它可以让你轻松地管理应用程序的状态&#xff0c;并且可以扩展和维护。它使用观察者模式来自动传播你的状态的变化到你的 React 组件。 二、安装及配置 安装 MobX 和 MobX-React&#xff1a;你可以使用 npm 或 yarn 安装这…

ubuntu 应用程序设置 开机自启动

1. 通过.desktop方式 autostart 中.desktop 配置文件 1.1 用户级自启动 登录后才可以启动服务。 可视化配置&#xff1a;在ubuntu自带的可视化程序来配置&#xff0c;就是StartupApplications&#xff0c;它在启动台中可以找到。 在ubuntu下目录是 ~/.config/autostart 添…