SwiftUI模仿微信 聊天列表list

学了swiftui后,每次看到一个界面,都会想着怎样用代码实现。

无意间发现微信上的是:图片下面没有下划间隔线(如下图),消息下面就有!

ios上面的设置也是这样!

但是swiftui上的list、或者form每条消息的间隔都有一条铺平的直线,如下图,图片下面也有!

    var body: some View {NavigationView {Form {HStack {Image(systemName: "person")Text("公众号平台安全助手")}HStack {Image(systemName: "person")Text("公众号平台安全助手")}HStack {Image(systemName: "person")Text("公众号平台安全助手")}}}}

手里的馒头突然就不香了。
于是我决定要customize一下这个list

但是好像这个list 或者form可选择的修改的选项不多,更不用说修改下划线了。

经过一顿搜索后,最后决定现隐藏掉下划间隔线再把下划间隔线Divider()添加回来了!

1、 首先是隐藏下划线

“栈溢出”上面有个回答了很多种解决方法的,有兴趣的可以去康康

我这里直接使用初始化时就隐藏掉的这个方法,就是直接在body上面写个init()感觉后面有一点小问题,不过先不管,能用!

struct text: View {init() {// To remove only extra separators below the list:UITableView.appearance().tableFooterView = UIView()// To remove all separators including the actual ones:UITableView.appearance().separatorStyle = .none}var body: some View {NavigationView {Form {HStack {Image(systemName: "person")Text("公众号平台安全助手")}HStack {Image(systemName: "person")Text("公众号平台安全助手")}HStack {Image(systemName: "person")Text("公众号平台安全助手")}}}}
}

2、每条消息之间添加Divider()

为了好看,最好外面加一个VStack(),还加个向左对齐alignment: .leading

var body: some View {NavigationView {Form {VStack(alignment: .leading){HStack {Image(systemName: "person")Text("公众号平台安全助手")}Divider()HStack {Image(systemName: "person")Text("微信支付")}Divider()HStack {Image(systemName: "person")Text("文件传输助手")}}}}}


下划线又回来啦

3、接着就开始modify一下这个下划线

因为下划线右边没有到岸左边也没有到所以加个scaleEffect(),再在前面加一个padding

Divider().scaleEffect(1.1).padding(.leading,38)


终于看到了自己想要成为的样子。

再再最后,添加图片,调整位置,巴拉巴拉

终于搞定了,本来想着很快搞定的,但是找图片、调颜色、定义数据比哩吧啦居然搞了几个小时。我还是太菜了,继续努力吧……

我是正在入门swift的萌新小白,希望通过分享解决方法,记录学习过程。有错漏请大家提出指正啊,有更好方法也可以分享下啊,peace

SwiftUI模仿微信 聊天list相关推荐

  1. netty案例,netty4.1中级拓展篇五《基于Netty搭建WebSocket,模仿微信聊天页面》

    前言介绍 本章节我们模仿微信聊天页面,开发一个基于Netty搭建WebSocket通信案例.Netty的应用方面非常广:聊天.MQ.RPC.数据等等,在5G到来的时候更加需要大量数据传输,Netty的 ...

  2. 案例七 、jquery模仿微信聊天界面

    首先看一下我们的效果图. 这个颜色可能搭配的有些不合适,但基本功能大都实现了.就是你和你同桌对话,你发的消息在你的左侧,而在他设备的右侧. 首先先写好整体的框架,在一个大容器中放两个盒子,分别是左侧和 ...

  3. android微信下拉出现小程序,下拉头部-模仿微信聊天头部拉下小程序效果

    最近做了一个模仿微信聊天界面头部下拉出现小程序的效果,同时也可以通过头部的按钮控制弹出框的伸缩,GitHub传送门 先上效果: 滑动.gif 下面讲下我的思路: 1.通过runtime的关联方法 ru ...

  4. Android之简单模仿微信聊天界面

    Android之模仿微信聊天界面 运行效果图: 代码如下: MainActivity.java package com.example.chatdemo;import android.app.Acti ...

  5. 模仿微信聊天时间展示

    需求:聊天记录时间,转换为微信聊天时间 格式:15:30 昨天15:30,前天 15:30,星期一 15:30,05-30 15:30 ,2021-05-30 15:30 // 处理时间函数入口,传入 ...

  6. HTML+CSS+JQuey模仿微信聊天app,能实现与所有人一起聊天

    设计思路         1.数据储存                 聊天群的数据存储在服务器端,通过接口获取实时渲染,                 与智能助手的聊天记录储存在本地,下次打开则渲 ...

  7. 小程序模仿微信聊天界面

    首先,这个消息聊天框的设计要考虑到: 消息的 发出者,接收者 消息的状态:已发(用数组保存起来):未发(输入值并获取) 手机端键盘弹起的高度对界面内容的展示的影响 第一个问题  消息的 发出者,接收者 ...

  8. 微信小程序-模仿绘制聊天界面

    参考文章 1.小程序模仿微信聊天界面 2.微信小程序实现仿微信聊天界面(各种细节处理) 3.微信小程序之页面中关于聊天框三角形的制作和使用 4.仿微信聊天记录时间显示 5.微信小程序-同时获取麦克风. ...

  9. php仿qq聊天界面,jquery仿微信聊天界面

    首先看一下我们的效果图. 这个颜色可能搭配的有些不合适,但基本功能大都实现了.就是你和你同桌对话,你发的消息在你的左侧,而在他设备的右侧. 首先先写好整体的框架,在一个大容器中放两个盒子,分别是左侧和 ...

最新文章

  1. pda找不到服务器,PDA连不上服务器常见问题分析.doc
  2. 社区资源 | NeurIPS 2020预讲会回放资料(含PPT)
  3. Hibernate HQL的update方法详解
  4. linux ce mysql安装_Linux 安装 MySQL 8.0
  5. Linux CentOS下安装Oracle
  6. CentOS ASP.NET Core Runtime Jexus跨平台布署
  7. 数学笔记1——导数1(导数的基本概念)
  8. 论文小综 | 知识图谱表示学习中的零样本实体研究
  9. shell脚本给mysql创建表_shell脚本:实现MySQL创建数据库和删除数据库的脚本
  10. MongoDB使用小结:一些不常见的经验分享
  11. 闩锁电流_IGBT——闩锁(Lanchup)效应
  12. python3怎么使用mnist_loader_Python读取mnist
  13. Ant编译SWF、SWC例子脚本
  14. 数格子算面积的方法_面试小学数学经典教案:《什么是面积》
  15. 软件工程投资回收率计算
  16. web处理html标记,web前端学习-----HTML标记
  17. python自己制作节奏大师游戏_十分钟利用Python制作属于你自己的个性logo
  18. SAP BOM 多层展开及组件成本处理
  19. Elasticsearch ILM 索引生命周期管理常见坑及避坑指南
  20. Unity显示FPS帧数

热门文章

  1. 【一文学会文件上传】SpringBoot+form表单实现文件上传
  2. 源码推荐:移动端商城(微信小程序源代码) WebView离线缓存
  3. x86、Linux、GNU、GNOME是什么
  4. (附源码)计算机毕业设计SSM化妆品网上商城数据分析系统
  5. H3C 关于安全域的一个理解
  6. 关于Visual Studio Code找不到工作区设置的问题
  7. Java对接微信OCR上传图片身份证识别
  8. H5唤起手机打电话(拨号)和发短信功能
  9. linux内核手帐_linux N卡 steam启动失败解决方案 (32位 库缺失)
  10. 名帖189 米芾 行书《萧闲堂记》