-
2019-07-22 17:35:12更多相关内容
-
Elment UI 学习代码
2022-03-19 15:48:53Elment UI 学习代码 -
迪文屏ui学习笔记.doc
2021-05-19 09:06:57迪文屏ui操作 -
DirectUI学习
2013-12-04 02:09:15DirectUI学习DirectUI学习 -
iOS-SwiftUI-MVVM:iOS MVVM SwiftUI学习示例
2021-04-20 23:55:34iOS MVVM SwiftUI学习示例。 -
WEB开发之jQuery EasyUI前端UI学习与应用
2021-06-10 19:47:42重写的UI控件,主要体现在兼容性好,样式统一,如果你不用UI控件,用浏览默认的控件,它们的样式将不会统一呈现,在不同的浏览器显现的样式将会不同,这将会给你带来诸多的烦恼,所以学习一套UI的重要性可想而知。... -
swift UI 学习 (一)
2019-07-10 18:42:13swift UI 学习 Swift UI 简介SwiftUI 的特点是什么1. 声明式语法2. 拥有更直观的新设计工具3. 为所有的苹果设备提供原生体验SwiftUI 代码实例 Swift UI 简介 苹果开发者大会 WWDC 2019 在北京时间今天凌晨开幕。在这...Swift UI 简介
苹果开发者大会 WWDC 2019 在北京时间今天凌晨开幕。在这场大会上除了「史上最难看 Mac 主机」、首次出现的iPadOS以外,我们还终于可以对饱受诟病的iTunes说再见了。而对于开发者来说,新发布的 SwiftUI 可能是最吸引人的特性,在 苹果公司软件工程高级副总裁Craig Federighi的演示中,我们可以轻松地把一百行的前端代码缩减到十几行。
学习网址:
SwiftUI 的特点是什么
SwiftUI 使用声明式语法,所以我们可以简单地声明用户界面的样式。
- 开发者可以声明需要由一串文本输入框构成的组件
- 然后定义每一个输入框的字体对齐方式、字体样式、字体颜色。
- 这些代码比以往更加易懂,省时并易于维护。
这种声明式的方式甚至允许使用复杂的功能,如动画(animation)。只需要几行代码,即可添加动画在任何控件上,并且可以使用易于调用的特效。在运行时,SwifthUI 会自行控制创建流畅动作的所有步骤,并且可以解决程序冲突,保证 app 稳定运行。动画特效变得如此容易,我们可以发掘使 app 更加灵动的方式。
1. 声明式语法
SwiftUI 使用了声明式语法,所以开发者能够十分轻易地描述用户界面应该做什么。例如,编写需要包含文本字段的项目列表时,开发者可以用代码描述每个字段的对齐方式、字体和颜色。代码也比以前更简单,更易于阅读。
这种声明式风格非常适用于像动画这样复杂的元素。通过 SwiftUI,开发者可轻松地将动画添加到几乎任何控件。
2. 拥有更直观的新设计工具
Xcode 11 包含更直观的新设计工具,可让开发者通过拖拽的方式使用 SwiftUI 构建界面,在这过程中可以直接设置控件的相关属性。
当在设计工具中工作时,所编辑的内容会立刻反映到代码上,如果从模拟器切换到手机,手机也能立马看到预览效果。
3. 为所有的苹果设备提供原生体验
SwiftUI 是真正的原生 UI 框架,建立在苹果数十年打磨用户界面的经验上。开发者通过少量代码和交互式设计就能使用这个框架。
SwiftUI 代码实例
- 为视图的任何状态声明内容和布局。SwiftUI知道该状态何时发生变化,并更新视图的呈现以匹配该状态。
代码:
List(landmarks) { landmark in HStack { Image(landmark.thumbnail) Text(landmark.name) Spacer() if landmark.isFavorite { Image(systemName: "star.fill") .foregroundColor(.yellow) } } }
运行效果:
- 将小的、单一职责的视图组合成更大、更复杂的接口。在为任何苹果平台设计的应用程序之间共享自定义视图。
代码:
struct FeatureCard: View { var landmark: Landmark var body: some View { landmark.featureImage .resizable() .aspectRatio(3/2, contentMode: .fit) .overlay(TextOverlay(landmark)) } }
效果:
- 创建平滑的动画就像添加一个方法调用一样简单。SwiftUI在需要时自动计算和动画转换。
代码:
VStack { Badge() .frame(width: 300, height: 300) .animation(.basic()) Text(name) .font(.title) .animation(Animation.basic().delay(0.25)) }
效果:
-
kendo ui学习资料
2012-11-26 15:15:48kendo ui的学习资料,适用初学者进行全局的了解和掌握,有各种例子 -
UI学习资源
2019-02-26 11:45:25资源是平面ui的教程,主要是web ui相应的视频,有需要的可以下载去学习学习 -
ui学习笔记
2015-11-19 22:01:31UI学习基础知识总结合体,主要介绍控件为主,最主要三大控件,button label 和textf的功能和用法 -
第一个 iOS 项目开发小结 - SwiftUI 学习资料、开源项目
2021-11-29 10:29:00第一个 iOS 项目开发小结SwiftUI 知识点小记学习资料开源项目一些问题记录项目预览 这段时间由于项目需要,我学习了一段时间 SwiftUI 并单独完成了一个系统的开发,耗时两个星期,主要是经常会发现自己一开始的写法...第一个 iOS 项目开发小结
这段时间由于项目需要,我学习了一段时间 SwiftUI 并单独完成了一个系统的开发,耗时两个星期,主要是经常会发现自己一开始的写法不好,然后对项目进行重构…尤其是网络请求、数据加载的生命周期、状态管理等方面。。
由于我不是专门做 iOS 的,我目前只会使用 SwiftUI,UIkit 基本没用到(有时候网上搜到别人的代码有用到会加进来),在要求不高的情况下,SwiftUI 还是够用的,后续有机会可以继续学习(还有一个 iOS 项目在等我呢。。。)
现在这个项目虽然完成了(可能还有一些修修改改),但是我觉得代码上还有很多不够优雅或者非标准的解决方案,最近忙期末考试,这段时间抽空学习一些开源项目,学习一些更好的写法。。
项目预览放在博客最后(只能放出一部分界面)
技术点简单小结:
- UI 框架:SwiftUI
- 包管理:CocoaPods
- 网络请求:Alamofire
- 轻量级持久化(存储 token、id…):UserDefaults
SwiftUI 知识点小记
以下都是我的理解进行一些简单的回想,如果描述有误可以指出
页面布局:
- VStack:纵向盒子
- HStack:横向盒子
- ZStack:垂直屏幕方向盒子
- Group:分组
- Spacer:控制盒子内布局
- GeometryReader:获取父 View 的尺寸
获取屏幕尺寸通过UIScreen.main.bounds.width
常用组件:
- Text:文本显示
- Button:按钮
- Picker:选择器,包含多种样式
- DatePicker:日期选择器
- Image:图片
- ProgressView:加载效果
表单相关
- List:将内容变为 iOS 表单格式
- Form:与 List 效果一样
- TextField:文本输入框
- SecureField:密码输入框
- Section:设置表单中的一些头部、尾部信息
页面跳转
- NavigationLink:页面跳转,可以设置导航标题、导航头等
- .sheet:相当于一个弹窗
- .fullScreenCover:相当于全屏的 sheet
状态管理:
- @State:管理当前 VIew 状态(一般是变量或者 struct)
- @StateObject:View 之间传递的对象
- @EnvironmentObject:整个项目所有 View 之间传递的对象
- @Binding:View 之间进行变量传递(地址传递)
- @Environment:从当前环境中取值,一般是实现编程导航或关闭 sheet
学习资料
遇到一些感觉不错的博客,分享出来:
专栏:博客 - コニクマル
Landmarks:https://swiftui.jokerhub.cn
代码示例:Gitee - SwiftUI
开源项目
在学习的过程,我找到了一些不错的开源项目,特此分享:
以下项目全部来自 Github 或者 Gitee
戴铭的 Swift 小册子:SwiftPamphletApp
SwiftUI 新特性: FeaturesDemo
Designers-Code 代码:SwiftUI-For-Designers-Code
模仿 Gitee 开发的 iOS 端:open-source-ios-apps
学习网络请求的项目:CatAPISwiftUI
语音识别功能的项目:SayMyName
简单的入门项目:cowboy-wisdom-swiftui
模仿微信开发的 iOS 端:SwiftUI-WeChat
SpringCloud + 前端 + iOS 的博客项目:NeptuneBlog-iOS
SwiftUI 中图表:ChartView
一些问题记录
解决 Text 文本显示不全的问题:
.fixedSize(horizontal: false, vertical: true)
地图相关:
- SwiftUI 获取当前位置:Using CoreLocation With SwiftUI
- SwiftUI 中跳转苹果自带地图:Github - OpenMapInSwiftUI
下拉刷新:
- 下拉刷新、上拉加载:SwiftUI-Refresh
- iOS 15 新特性:.refrehable
获取今日 23:59:59:
func getTodayEndTime() -> Date { let date = Date() // current date or replace with a specific date let calendar = Calendar.current let endTime = calendar.date(bySettingHour: 23, minute: 59, second: 59, of: date) return endTime! }
项目预览
这个项目不是个人项目,不能开源,界面也不能全部放出来,只能放出一些简单的功能性代表(且不涉及企业信息)的界面,下面是部分界面…
-
jquery & jquery UI 学习资料
2012-05-06 14:20:04jquery & jquery UI 学习资料 -
SystemUI学习笔记
2015-09-15 10:48:17SystemUI:StatusBar,Notification,PowerUI,SettingsUI,Recents,RingtonePlayer.. -
webUI学习的标签整理
2016-09-13 19:17:20webUI学习的标签整理 -
UI学习源代码
2015-08-22 18:09:57iosUI学习源代码,包括大部分控件和一些简单的数据库知识. -
Chakra-UI 学习笔记
2021-01-06 08:45:36Chakra-UI 学习笔记 文章出处: 拉 勾 大前端 高薪训练营 现代化 React UI 框架 Chakra-UI 1. Chakra-UI 介绍 Chakra UI是一个简单的,模块化的易于理解的UI组件库.提供了丰富的构建React应用所需的U|组件. 文档: ...Chakra-UI 学习笔记 文章出处: 拉 勾 大前端 高薪训练营
现代化 React UI 框架 Chakra-UI
1. Chakra-UI 介绍
Chakra UI是一个简单的,模块化的易于理解的UI组件库.提供了丰富的构建React应用所需的U|组件.
文档: https://next.chakra-ui.com/docs/getting-started- Chakra UI内置Emotion,是CSS-IN-JS解决方案的集大成者
- 基于Styled-Systems https://styled-system.com/
- 支持开箱即用的主题功能
- 默认支持白天和黑夜两种模式
- 拥有大量功能丰富且非常有用的组件
- 使响应式设计变得轻而易举
- 文档清晰而全面.查找API更加容易
- 适用于构建用于展示的给用户的界面
- 框架正在变得越来越完善
2. Chakra-UI 快速开始
2.1 下载 Chakra-UI
npm install @chakra-ui/react @emotion/react @emotion/styled framer-motion
2.2 克隆默认主题
Chakra-UI 提供的组件是建立在主题基础之上的,只有先引入了主题组件才能够使用其他组件。
npm install @chakra-ui/theme
2.3 引入主题
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import theme from '@chakra-ui/theme' import { ChakraProvider } from "@chakra-ui/react" ReactDOM.render( <ChakraProvider theme={theme}> <App /> </ChakraProvider>, document.getElementById('root') );
2.4 依赖清单
{ "name": "chakra-ui-guide", "version": "0.1.0", "private": true, "dependencies": { "@chakra-ui/react": "^1.0.4", "@chakra-ui/theme": "^1.2.2", "@emotion/react": "^11.1.3", "@emotion/styled": "^11.0.0", "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", "framer-motion": "^3.1.1", "react": "^17.0.1", "react-dom": "^17.0.1", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } }
2.5 引用组件
import { Button } from '@chakra-ui/react' function App() { return ( <div> <Button>submit</Button> </div> ); } export default App;
3. Style Props 样式属性
Style Props 是用来更改组件样式的,通过为组件传递属性的方式实现。通过传递简化的样式属性一达到提升开发效率的目的。可以在https://chakra-ui.com/docs/features/style-props查看样式简写
Prop CSS Property Theme Key m
,margin
margin
space
mt
,marginTop
margin-top
space
mr
,marginRight
margin-right
space
mb
,marginBottom
margin-bottom
space
ml
,marginLeft
margin-left
space
mx
margin-left
andmargin-right
space
my
margin-top
andmargin-bottom
space
p
,padding
padding
space
pt
,paddingTop
padding-top
space
pr
,paddingRight
padding-right
space
pb
,paddingBottom
padding-bottom
space
pl
,paddingLeft
padding-left
space
px
padding-left
andpadding-right
space
py
padding-top
andpadding-bottom
space
如何使用:
import { Box } from '@chakra-ui/react' function App() { return ( <div> <Box w={256} h={200} bg='tomato'>Box</Box> </div> ); } export default App;
4. 主题
4.1 颜色模式(color mode)
chakra-ui 提供的组件都支持两种颜色模式,浅色模式(light)和暗色模式(dark).
可以通过 useColorMode 进行颜色模式的更改。import { Box, Text, Button, useColorMode } from '@chakra-ui/react' function App() { const {colorMode, toggleColorMode} = useColorMode() // 注意这里是对象解构,不是数组解构 return ( <Box w={256} h={200} bg='tomato'> <Text>当前的颜色模式为 {colorMode}</Text> <Button onClick={toggleColorMode}>切换颜色模式</Button> </Box> ); } export default App;
Chakra 将颜色模式存储在 localStorage 中,并使用类名策略来确保颜色模式是持久的
4.2 根据颜色模式设置样式
chakra 允许在为元素设置样式时根据颜色模式产生不同值。通过 useColorModeValue 钩子函数实现
import { Box, useColorModeValue } from '@chakra-ui/react' const bg = useColorModeValue('tomato', 'skyblue') <Box w={256} h={200} bg={bg}></Box>
4.3 强制组件颜色模式
使组件不受颜色模式的影响,始终保持在某个颜色模式下的样式,使用 LightMode 组件包裹需要作用的组件只显示浅色模式,,使用 DarkMode 组件包裹需要作用的组件只显示暗色模式
import { Button, LightMode } from '@chakra-ui/react' <LightMode> <Button onClick={toggleColorMode}>切换颜色模式</Button> </LightMode>
4.4颜色模式通用设置
-
设置默认颜色模式
通过 theme.config.initialColorMode 可以设置应用使用的默认主题. -
使用操作系统所使用的颜色模式
通过 theme.config.useSystemColorMode 可以设置将应用的颜色模式设置为操作系统所使用的颜色模式.
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import theme from '@chakra-ui/theme' import { ChakraProvider } from "@chakra-ui/react" // 1. 设置默认颜色模式 // theme.config.initialColorMode = 'dark' // 2. 使用操作系统所使用的颜色模式 theme.config.useSystemColorMode = true ReactDOM.render( <ChakraProvider theme={theme}> <App /> </ChakraProvider>, document.getElementById('root') );
4.5 主题对象
- Colors
在设置颜色时,可以但不限于取主题对象中的颜色值
function App() { return <Box w={200} h={200} bg="cyan.500"></Box> }
- Space
使用 space 可以自定义项目间距。这些间距值可以由 width, height 和 maxWidth, minWidth 等样式引用
<Box mt={6} w="lg" h="2xl" ></Box> <!-- lg => 32rem -->
- Breakpoints
配置响应数组值中使用的默认断点。这些值将用于生成移动优先(即最小宽度)的媒体查询
// theme.js export default { breakpoints: ["30em", "48em", "62em", "8Øem"] , };
<Box fontSize={["12px", "14px", "16px", "18px", "20px"]}></Box>
4.6 创建标准的Chakra-Ul组件
- 创建 Chakra-Ul 组件
import {chakra} from '@chakra-ui/react' const LaGouButton = chakra("button", { baseStyle: { borderRadius: 'lg' }, sizes: { sm: { px: '3', // padding-left/padding-right py: '1', // padding-right/padding-bottom fontSize: '12px' }, md: { px: '4', py: '2', fontSize: '14px' } }, variants: { // 风格化样式 primary: { bgColor: 'blue.500', color: 'white' }, danger: { bgColor: 'red.500', color: 'white' } } }); LaGouButton.defaultProps = { size: 'sm', variant: 'primary' }; function App() { return ( <div> <LaGouButton> 按钮 </LaGouButton> </div> ) } export default App;
- 全局化Chakra-UI组件样式
a. 在 src 文件夹中创建 LaGou 文件夹用于放置自定义Chakra-UI组件
b. 在 lagou 文件夹中创建 Button.js 文件并将组件样式放置于当前文件中并进行默认导出
const LaGouButton = { baseStyle: { borderRadius: 'lg' }, sizes: { sm: { px: '3', // padding-left/padding-right py: '1', // padding-right/padding-bottom fontSize: '12px' }, md: { px: '4', py: '2', fontSize: '14px' } }, variants: { // 风格化样式 primary: { bgColor: 'blue.500', color: 'white' }, danger: { bgColor: 'red.500', color: 'white' } }, defaultProps: { size: 'sm', variant: 'primary' } } export default LaGouButton
c. 在 LaGou 文件夹中创建 index.js 文件用于导入导出所有的自定义组件
import LaGouButton from './Button' export default { LaGouButton }
d. 在 src 文件夹中的 index.js 文件中导入自定义 Chakra-UI 组件并和 components 属性进行合并
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import theme from '@chakra-ui/theme' import { ChakraProvider } from "@chakra-ui/react" import LaGouComponents from './LaGou' const myTheme = { ...theme, components: { ...theme.components, ...LaGouComponents } } console.log(myTheme) ReactDOM.render( <ChakraProvider theme={myTheme}> <App /> </ChakraProvider>, document.getElementById('root') );
e. 在组件中使用样式化组件
import {chakra} from '@chakra-ui/react' const LaGouButton = chakra("button", { themeKey: 'LaGouButton' }); function App() { return ( <div> <LaGouButton> 按钮 </LaGouButton> </div> ) } export default App;
-
android systemUI 学习资料
2014-06-16 23:23:08android system UI 学习资料,放到csdn上让大家共同学习,进步。 -
UI学习总结
2019-02-24 20:14:39在代码中遨游许久后,学校终于有了UI课,正式地开始学习UI了。 起初以为UI没有代码那么复杂,不用去思考其中的逻辑与推算,应该很容易,接下来的UI课应该很轻松、很容易吧,终于可以放松一下那紧张的学习状态了。 ... -
Unreal UI学习--文本显示示例
2019-04-10 18:41:14学习目标:在界面中显示实时fps信息, 一:创建一个"控件蓝图 -
vue+element UI 学习总结笔记(一)
2019-09-03 23:14:50vue+element UI 学习总结 Webpack: WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的... -
Kendo-UI学习 数据表格grid属性说明(一)
2018-08-07 17:40:07kendoUI-Grid属性说明: allowCopy: Boolean | Object 是否启用表格复制,该属性默认为false,标识禁用复制功能。设置为true时,可以使用鼠标选中需要的表格数据进行复制。 altRowTemplate:String | function ... -
jquery-ui学习文档
2014-10-07 21:58:39jquery-ui学习文档 -
iOS开发,UI学习阶段,基本课程大纲
2015-07-29 10:57:09iOS开发,UI学习阶段,基本课程大纲。涵盖全部UI学习知识重点难点,轻松,准确,掌握UI学习的重要知识点。 -
Element UI学习记录之布局
2022-03-24 10:52:40Element UI学习记录之布局 一、Layout布局 二、Container布局容器 Element UI学习记录之布局 一、Layout布局 基本概念:一行通过分割为24栅格栏进行布局,如果要占满一行如下: <!--el-row 表示一行--... -
UiPath学习文档
2020-03-10 09:57:32UiPath学习文档,小白入门级知识文档,希望能帮到大家,一起学习UiPath自动化流程部署开发,分享相关流程的经验及技术 -
SwiftUI学习笔记之异步数据请求
2020-04-29 10:19:00SwiftUI学习笔记之异步数据请求 方法一 方法描述: 结合使用 ObservableObject @Published @ObservedObject ObservableObject 定义自己的Model时,实现该协议 @Published 在需要变通通知的属性上标记, 可以在属性... -
Unity3D插件 Doozy UI 学习(二):与DoozyUI的事件传递
2019-01-10 17:03:23为了能让DoozyUI与项目本身可以兼容,至少需要做到以下两点: 1、通过DoozyUI 触发一个自定义的事件(比如通过点击按钮来开始游戏)。 2、通过其他模块的事件来触发DoozyUI(比如游戏失败弹出提示框)。 所以需要... -
ViewPager实现顶部菜单栏,仿最新易信UI,UI学习之路四
2014-04-06 12:27:15ViewPager实现顶部菜单栏,仿最新易信UI,UI学习之路四,简单实现 -
Unity3D插件 Doozy UI 学习(三):UI Element
2019-10-12 11:30:51之前写过一些关于DoozyUI的开发介绍,比较基础。后面用DoozyUI开发了一段时间,现在已经有了更深入的一些了解。这篇主要讲一下UI Elemenet这个脚本的使用。 正文 1、关于UI Element: 如下图所示,Doozy UI的UI... -
给即将毕业的大学生UI设计学习心得.doc
2020-10-25 00:38:38给即将毕业的大学生UI设计学习心得撰写人_日 期_ 给即将毕业的大学生UI设计学习心得 撰写人_ 日 期_ 第 PAGE 页 共 NUMPAGES 页 给即将毕业的大学生UI设计学习心得 我现在是一名平面设计大四即将毕业的学生相信和...