返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >SwiftUI 引导页界面实现示例
  • 850
分享到

SwiftUI 引导页界面实现示例

2024-04-02 19:04:59 850人浏览 泡泡鱼
摘要

目录引言页面分析-元素构成实战编程-创建项目实战编程-引导图片实战编程-引导文字实战编程-引导按钮实战编程-轮博滚动整体效果-预览本章小结引言 当用户首次启用App时,客户端应用常常

引言

当用户首次启用App时,客户端应用常常会出现一段过渡的App功能说明页面,帮助用户快速了解并熟悉App的基本功能和亮点。

引导页是用户了解产品的第一个窗口,能给用户留下最初的印象。

一个好的引导页可以很好地传达产品设计理念和产品设计调性,也是企业传达企业文化很好的窗口。当然对于开发者来说,也是必不可少的练手项目。

接下来,我们同样将用10分钟来构建一个引导页界面布局。

页面分析-元素构成

引导页常常由3~5个滑动页面组成,引导页的设计内容较为规范统一,常规由图片、说明文案、引导按钮组成。当引导页滑动到最后一个页面时,用户可以点击引导按钮进入登陆页或者首页。

  • 引导图片:使用Image组件,保持其固定宽高比;
  • 引导文字:使用Text组件,设置字体颜色等;
  • 引导按钮:使用Image组件,引用Apple官方的SF Symbols图标库图标;

考虑完整体结构后,对于单个页面布局可以采用垂直布局,以此为图片>文字>引导按钮。

实战编程-创建项目

打开Xcode开发工具,点击Create a new Xcode project,将新项目命名为GuidePage,如下弹窗所示:

命名好项目后,指定保存路径,一个SwiftUI项目就创建完成了。

实战编程-引导图片

和上一章节导入登录页面背景图片的方案一致,点击视图工具栏的Assets.xcassets文件,点击底部“+”图标,选择Import,如下弹窗所示:

本次引导页需要搭建4个页面,因此需要到4张引导页图片。除了点击“+”图标,选择Import导入本地图片外,还可以在本地文件夹中选择多张图片拖入到中间的资源文件中进行导入,两种方式在实际开发中均可使用。

导入文件完成后,如下弹窗所示:

当然别忘了给导入的图片重命名,方便更好地找到图片。图片资源导入成功后,回到ContentView文件,多张图片下,可以使用图片数组的方式将导入的图片创建在一个图片数组中,代码如下:

let imageModels = ["image001", "image002", "image003", "image004"]

let为声明常量的方法,imageModels为声明的对象,使用赋值运算符“=”给声明的对象赋值。数组的符号为“[]”,由于图片在SwiftUI引用的方式为字符串类型,因此数组内的元素为多个字符串元素,使用“,”隔开。

SwiftUI声明式语法的魅力之处在于,我们声明的对象imageModels可以自动根据赋值的内容确定其类型,省略了每次都需要指定类型的编程步骤。

我们使用Image组件展示imageModels图片数组中的图片看看效果,代码如下:

struct ContentView: View {
    let imageModels = ["image001", "image002", "image003", "image004"]
    var body: some View {
        Image(imageModels[0])
            .padding()
    }
}

Image组件引导imageModels图片数组的内容,使用[]进行索引,而计算机的索引是由0开始,因此0代表imageModels图片数组第一个元素,也就展示了第一张图片。

可以看到图片尺寸已经超出了屏幕可见范围,结合上一章内容所需,需要设置图片修饰符让Image内容展示在屏幕范围内,如下代码所示:

Image(imageModels[0])
    .resizable()
    .scaledToFit()

resizable修饰符可对Image图片对象进行缩放,scaledToFit修饰符在缩放的基础上对Image图片对象设置保持其宽高比,避免图片拉升变形。

实战编程-引导文字

引导文字和引导图片具有一一对应关系,每一张引导图片对应一段引导文字,因此也可以使用数组的方式创建文字数字再引用,如下代码所示:

let textModels = ["勤测体温","勤加消毒","勤洗双手","出门戴口罩"]

引导文字和引导图片的布局方式为垂直布局,这里可以使用到VStack布局容器,并可使用文字修饰符对文字进行美化,如下代码所示:

VStack(spacing: 20) {
    Image(imageModels[0])
        .resizable()
        .scaledToFit()
    Text(textModels[0])
        .font(.title)
        .bold()
}

实战编程-引导按钮

引导按钮本质上也是一张图片,与常规图片类型不同,它是一种图片图片。我们可以直接导入引导按钮的图片,当然为了保持图标的统一性,Apple官方提供了官方图标库供开发者使用,无需导入图片,即可直接使用引用Apple官方的SF Symbols图标库图标。

SF Symbols图标库图标可以直接使用Image组件调用,与常规图片对象引用不同,需要使用systemName指定为系统图标类型,如下代码所示:

Image(systemName: "arrow.forward.circle")
    .font(.largeTitle)

实战编程-轮博滚动

单张引导页的样式我们基本完成了,要使得引导页可以滑动切换,这里需要使用到一个新的组件TabView,TabView组件是SwiftUI提供的切换视图组件,使用方式如下:

TabView {
    //代码块
}
.tabViewStyle(PageTabViewStyle())
.edgesIgnoringSafeArea(.all)

由于要实现滚动,那么在TabView视图的基础上,还需要使用tabViewStyle修饰符进行修饰,需要使用PageTabViewStyle样式。并且视图需要铺满全屏,使用edgesIgnoringSafeArea修饰符去掉所有安全区域。

视图内容部分,之前都是使用数组的索引方式,这只能使用到1个数据,要想引用所有数据,需要使用到ForEach循环函数,代码如下:

TabView {
    ForEach(imageModels.indices, id: \.self) { index in
        VStack(spacing: 80) {
            Image(imageModels[index])
                .resizable()
                .scaledToFit()
            Text(textModels[index])
                .font(.title)
                .bold()
            Image(systemName: "arrow.forward.circle")
                .font(.largeTitle)
        }
    }
}
.tabViewStyle(PageTabViewStyle())
.edgesIgnoringSafeArea(.all)

ForEach循环的方法遍历imageModels数组中的数据,在ForEach循环方法中,indices获得数据的范围,imageModels.indices等同于0..imageModels.count。结合TabView组件,如此,便实现了引导页的遍历和滚动效果。

最后,当引导页滚动到最后一个页面时,引导按钮需要切换变成引导点击进入首页/登陆页的按钮,我们可以使用if判断语句,若当前引导页为最后一张,则修改引导按钮为指定的按钮,可以使用last获得数组中最后一个元素,代码如下:

if imageModels[index] == imageModels.last {
    Button(action: {}) {
        Text("立即体验")
            .font(.system(size: 17))
            .bold()
            .frame(minWidth: 0, maxWidth: 120)
            .padding()
            .foregroundColor(.white)
            .background(.green)
            .cornerRadius(8)
    }
} else {
    Image(systemName: "arrow.forward.circle")
        .font(.largeTitle)
}

整体效果-预览

点击模拟器顶部的“运行”图标,尝试拖动页面,效果如下:

本章小结

在本章节中,我们强化学习了Image组件和Text组件的使用,并学习使用systemName引用Apple官方图标库图标。另外还学习2个新的组件TabView切换视图容器和ForEach循环函数,其中ForEach循环函数中如何使用索引以及获得最后一个元素等方法也有所涉及。

总的来说,新增知识点较多,希望各位童鞋好好消化下,更好地进行下面的学习。

以上就是SwiftUI 引导页界面实现示例的详细内容,更多关于SwiftUI 引导页界面的资料请关注编程网其它相关文章!

--结束END--

本文标题: SwiftUI 引导页界面实现示例

本文链接: https://lsjlt.com/news/167623.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SwiftUI 引导页界面实现示例
    目录引言页面分析-元素构成实战编程-创建项目实战编程-引导图片实战编程-引导文字实战编程-引导按钮实战编程-轮博滚动整体效果-预览本章小结引言 当用户首次启用App时,客户端应用常常...
    99+
    2024-04-02
  • SwiftUI登录界面布局实现示例详解
    目录引言页面分析-元素构成实战编程-背景图片实战编程-说明文字实战编程-登录方式实战编程-辅助文字本章小结引言 为了更好地了解和学习SwiftUI,我们快速学习SwiftUI的三种基...
    99+
    2024-04-02
  • PyQt5实现界面(页面)跳转的示例代码
    网上关于PyQt5的教程很少,特别是界面跳转这一块儿,自己研究了半天,下来和大家分享一下 一、首先是主界面 # -*- coding: utf-8 -*- # Form im...
    99+
    2024-04-02
  • android 引导界面的实现方法
    代码如下:顺序是: OneAcitivity  -->MainActivity -> TwoActivity 然后第2次进去就是:OneActivity...
    99+
    2022-06-06
    界面 方法 Android
  • SwiftUI智能家居开关灯页面搭建示例
    目录项目背景项目搭建背景卡片页面标题灯视图开关按钮整体布局项目展示本章代码项目背景 晚上临睡前看着头顶上的卧室灯,圆圆的,点击开灯亮起,再点击关灯熄灭,以此反复。 突然大脑里有了一个...
    99+
    2022-11-13
    SwiftUI智能家居开关灯页面 SwiftUI智能家居
  • Android引导页面的简单实现
    第一次进入应用的时候,都会有一个引导页面,引导页面的实现起来也很简单,实现的方式也有很多,下面是自己写的一个引导页面的效果,大致的实现思路为: 最外层是一个Fragment...
    99+
    2022-06-06
    Android
  • js页面引导页的实现思路总结
    目录实现思路1实现思路2插件实现思路1 采用png格式的方式,然后高亮部分镂空,其它部分采用,如下图所示,简单误差大 其效果如图所示,点击下一步等没法按照图片中的“下一...
    99+
    2023-05-16
    js 引导页 js新手引导
  • ViewPager实现带引导小圆点与自动跳转的引导界面
    实现引导小圆点的方法其实很简单,可直接在布局上放置与引导页面等量的ImageView,然后在切换页面的时候更改图片资源就好了。这里顺便提一下,有些APP是干脆在制作引导页面图片的时候加上引导小圆点,这种方式显然最简单不过了,但是既然是附在图...
    99+
    2023-05-30
    viewpager 引导圆点 自动跳转
  • Android实现引导页的圆点指示器
    在App引导界面通常有引导界面提示小圆点,我们使用一个集成的类 来整体封装实现: 使用的方法: 首先在 XML布局中引入这个自定义的控件: <FrameLayout xm...
    99+
    2024-04-02
  • 基于Viewpager2实现登录注册引导页面
    本文实例为大家分享了Viewpager2实现登录注册引导页面的具体代码,供大家参考,具体内容如下 介绍 屏幕滑动是两个完整屏幕之间的切换,在设置向导或幻灯片等界面中很常见 实现图(图...
    99+
    2024-04-02
  • 很赞的引导界面效果Android控件ImageSwitcher实现
    本文实例为大家分享了Android控件ImageSwitcher实现引导界面的代码,供大家参考,具体内容如下 效果图: 布局代码: <?xml versio...
    99+
    2022-06-06
    界面 Android
  • Android 中ActionBar+fragment实现页面导航的实例
    Android 中ActionBar+fragment实现页面导航的实例为保证android2.0以上均能运行,使用support.v7库下的actionbar及fragment继承自AppCompatActivity(ActionBarA...
    99+
    2023-05-30
    android actionbar fragment
  • Android简单实现引导页
    本文实例为大家分享了Android简单实现引导页的具体代码,供大家参考,具体内容如下 一.思路 我们选择ViewPager + View + ImageView 来实现引导页效果,V...
    99+
    2024-04-02
  • react.js实现页面登录跳转示例
    1,页面目录信息: 2,从index.js导入路由信息BasicRoute.js,然后BasicRoute.js中存储App.js和StatisticsInformation.js...
    99+
    2023-01-31
    react.js登录跳转 react.js页面跳转
  • 如何用react实现引导页
    本篇内容主要讲解“如何用react实现引导页”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用react实现引导页”吧!用react实现引导页的方法:1、创建一个启动界面,代码如“import...
    99+
    2023-07-04
  • 怎么用react实现引导页
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。怎么用react实现引导页?前言眼看很多公司都开始尝试使用ReactNative,达到跨平台开发,最近也写了很多文章,希望让更多想了解的同学快速上手Rea...
    99+
    2023-05-14
    React
  • ViewPager实现漂亮的引导页
    废话就不多说了,直接上效果图和代码fry.Activity01package fry;import java.util.ArrayList;import java.util.Collection;import java.util.Itera...
    99+
    2023-05-30
    viewpager 引导页 age
  • ViewPager实现轮播图引导页
    本文实例为大家分享了ViewPager实现轮播图引导页的具体代码,供大家参考,具体内容如下 创建fragment将fragment对象添加到viewPager中,使其可以进行左右滑动...
    99+
    2024-04-02
  • android实现轮播图引导页
    android轮播图引导页(因为是引导页,所以不具备自动轮播的功能) 示例: 代码后面有数字,3.1开始就是开始做小圆点 //分为三个部分 (1)布局 activity_lun_b...
    99+
    2024-04-02
  • 微信小程序实现登录界面示例
    本文实例为大家分享了微信小程序实现登录界面的具体代码,供大家参考,具体内容如下 注:这里使用的是原生微信小程序 使用wxss和wxml index.wxml文件中代码 <vie...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作