颜值即正义,使用SwiftUI搭建简历管理详情页

简介: 颜值即正义,使用SwiftUI搭建简历管理详情页

颜值即正义,使用SwiftUI搭建简历管理详情页


效果预览

我们先来看看最终的效果图。示例:

image.png

结构梳理

我们大体了解下简历管理页面的结构,顶部导航说明文字、三个上传按钮

顶部导航没什么好说的了,说明文字有2个,采用的是纵向排布且左对齐,而三个上传按钮结构类似,我们可以抽离出样式减少代码量

最后说明文字和上传按钮和说明文字也是纵向排布,不同的是采用居中对齐

顶部导航

首先我们来完成顶部导航,示例:

// MARK: 简历管理详情页
struct UploadResume: View {
    var body: some View {
        ZStack {
            Color(red: 246 / 255, green: 246 / 255, blue: 246 / 255).edgesIgnoringSafeArea(.all)
        }.navigationBarTitle("简历管理", displayMode: .inline)
    }
}

image.png

上述代码中,我们很简单的创建了一个新的视图UploadResume。然后给视图ZStack覆盖上一层背景颜色,最后设置了navigationBarTitle顶部导航的标题。

说明文字

说明文字部分,我们可以单独构建样式,然后在UploadResume视图中使用。示例:

// 说明文字
func helpContent() -> some View {
    VStack(alignment: .leading, spacing: 20) {
        Text("请选择上传方式")
            .font(.title)
            .fontWeight(.bold)
        Text("建议使用PDF文件,也支持Doc、Docx、JPG、PNG格式,大小不超过5M。")
    }.padding()
}

上述代码中,我们使用VStack布局,然后设置了2个Text作为说明文字的内容,它们的对齐方式我们使用leading左对齐。

我们在UploadResume视图中使用也保持左对齐,示例:

ZStack {
    Color(red: 246 / 255, green: 246 / 255, blue: 246 / 255).edgesIgnoringSafeArea(.all)
    VStack(alignment: .leading, spacing: 40) {
        helpContent()
    }
}

image.png

上传按钮

我们看到上传按钮有3个,且结构类似,因此我们可以抽离出样式部分。示例:

// 上传操作
func uploadContent(image: String, text: String, isRecommend: String) -> some View {
    HStack(spacing: 20) {
        Image(image)
            .resizable()
            .aspectRatio(contentMode: .fit)
            .frame(width: 40)
            .clipShape(Circle())
        Text(text)
            .font(.system(size: 17))
            .foregroundColor(.black)
        Spacer()
        Text(isRecommend)
            .font(.system(size: 17))
            .foregroundColor(.green)
    }
    .padding(.horizontal)
    .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: 80)
    .background(.white)
    .cornerRadius(8)
    .padding(.horizontal)
}

上述代码中,我们没有和之前一样使用结构体,而是使用方法创建新的视图uploadContent

上传按钮有Image图标、上传方式Text、是否推荐Text,我们将这三个参数抽离传入,然后返回创建一个View视图。

uploadContent视图中,我们使用HStack横向排布3个元素,最后设置按钮的尺寸和背景颜色,就完成了按钮样式的内容。

然后我们在UploadResume视图中创建样式,示例:

ZStack {
    Color(red: 246 / 255, green: 246 / 255, blue: 246 / 255).edgesIgnoringSafeArea(.all)
    VStack(alignment: .leading, spacing: 40) {
        helpContent()
        VStack(alignment: .center, spacing: 20) {
            Button(action: {
            }) {
                uploadContent(image: "weChat", text: "微信上传", isRecommend: "推荐")
            }
            Button(action: {
            }) {
                uploadContent(image: "phone", text: "本地上传", isRecommend: "")
            }
            Button(action: {
            }) {
                uploadContent(image: "mail", text: "邮件上传", isRecommend: "")
            }
        }
        Spacer()
    }
    .padding(.top, 40)
    .padding(.bottom, 40)
}.navigationBarTitle("简历管理", displayMode: .inline)

image.png

项目展示

恭喜你,完成了本章的全部内容!

快来动手试试吧。

相关文章
|
6月前
|
监控 搜索推荐 数据挖掘
电子邮件营销新风潮:五步高效撰写EDM文案
构建成功的EDM邮件营销策略涉及理解目标受众、设定营销目标、创建吸引人的主题、个性化内容和情感共鸣、强调价值点、以及持续测试和优化。了解受众特征和行为以定制文案,使用生动语言制造兴趣,通过个性化和情感化元素增强连接,突出产品优势并设置明确的行动号召。运用A/B测试评估文案效果,并监控数据以优化营销表现。Zoho Campaigns等工具可提供支持,包括模板、编辑器和A/B测试功能,助力打造高效邮件营销文案。
125 1
|
5月前
|
监控 C#
技术经验解读:【转】c#实现魔兽(warIII)中显血和改键功能(附源码)(不影响聊天打字)
技术经验解读:【转】c#实现魔兽(warIII)中显血和改键功能(附源码)(不影响聊天打字)
91 0
颜值即正义,使用SwiftUI搭建版本更新弹窗
颜值即正义,使用SwiftUI搭建版本更新弹窗
133 0
|
程序员 Swift
谁说程序员不懂浪漫,教你使用SwiftUI搭建一个电子相册送给她吧~
谁说程序员不懂浪漫,教你使用SwiftUI搭建一个电子相册送给她吧~
191 0
|
存储 前端开发 区块链
区块链农场养成种植种树游戏系统开发方案介绍/功能详情/项目源码
区块链技术的兴起,为游戏开发带来了新的思路和玩法。其中,区块链农场养成种植种树游戏系统是一种利用区块链技术实现虚拟农场种植的游戏。玩家可以通过购买种子、种植、收获、交易等方式,体验虚拟农场的乐趣,同时也可以参与到环境保护和可持续发展的过程中。下面,我们将详细介绍区块链农场养成种植种树游戏系统开发方案、功能详情以及项目源码。
240 0
|
人工智能 Serverless 异构计算
【有奖体验】叮!你有一张 3D 卡通头像请查收
立即体验基于函数计算部署【图生图】一键部署 3D 卡通风格模型,秒生成属于自己的 3D 卡通图!
|
Linux 开发工具 开发者
猿如意中的【取色器】效率工具详情介绍
猿如意中的【取色器】效率工具详情介绍
306 0
猿如意中的【取色器】效率工具详情介绍
|
设计模式 Java 数据库
移动应用程序设计基础——期末考核——登录界面与简单日记本的综合实践
上机单独完成一个简单日记本程序的编写。界面包括:用户登录,用户注册,日记本主页,新增编辑日记。 注意:以下***为您姓名的拼音单词第一个字母(如俞成海——ych)。 1、 用户登录 布局:activity_login.xml, 布局如下图,资源图片username.png和password.png,布局要求左边内嵌图片,提示如图。(10分) ...
243 0
移动应用程序设计基础——期末考核——登录界面与简单日记本的综合实践
喜迎国庆,几行简单代码即可实现【国庆风格】社交头像
喜迎国庆,几行简单代码即可实现【国庆风格】社交头像
182 0
喜迎国庆,几行简单代码即可实现【国庆风格】社交头像
|
监控 小程序 安全
热饭的测开成果盘点第十八期:微信小程序平台
本期介绍的是一款测试微信小程序的自动化平台,功能比较简单,算是我给我带着我小徒弟(txn) 练手的第一个学习用平台。
热饭的测开成果盘点第十八期:微信小程序平台