SwiftUI
。。。
白羊大树
一个长得比较黑的大白羊。
展开
-
SwiftUI 简单实现RadioButton
这篇文章是我自己在实现Radio按钮功能的时候,因为自己也是初学者,所以在GitHub上着了相关的案例,并进行了一定的改修,这里做一下学习记录。import SwiftUIstruct MyTmpView: View { let items: [String] = ["item 1", "item 2", "item 3", "item 4", "item 5"] //确定被选中的item @State var selectedID = "" var bo.原创 2021-12-12 22:09:44 · 2154 阅读 · 0 评论 -
取消Button点击高亮效果
创建一个不突出显示的自定义ButtonStylestruct StaticButtonStyle: ButtonStyle { func makeBody(configuration: Configuration) -> some View { configuration.label }}调用及DemoButton(action: { // 需要执行的点击事件}, label: { Text("点击按钮")})// 调用.b.转载 2021-11-28 21:10:26 · 1263 阅读 · 0 评论 -
SwiftUI 中通过Toggle实现单选框和复选框效果
import SwiftUIstruct ContentView: View { @State private var bo = false var body: some View { Toggle("开关", isOn: $bo) .toggleStyle(CheckBoxToggleStyle(shape: .square)) } struct CheckBoxToggleStyle: ToggleStyle{转载 2021-11-28 20:34:41 · 2029 阅读 · 1 评论 -
SwiftUI 小技巧之如何使用十六进制颜色color
什么是 十六进制颜色码十六进制颜色码就是在软件中设定颜色值的代码。在很多软件中,都会遇到设定颜色值的问题。人的眼睛看到的颜色有两种:一种是发光体发出的颜色,比如计算机显示器屏幕显示的颜色;另一种是物体本身不发光,而是反射的光产生 十六进制颜色。代码实现extension Color { init(hex: Int, alpha: Double = 1) { let components = ( R: Double((hex >>转载 2021-11-23 23:07:20 · 958 阅读 · 0 评论 -
SwiftUI 简单的使用WebView
直接上代码import SwiftUIimport WebKit//不通过参数直接构建视图struct MyWebView: UIViewRepresentable { func makeUIView(context: Context) -> WKWebView { return WKWebView() } func updateUIView(_ uiView: WKWebView, context: Context) { let.原创 2021-11-07 22:13:21 · 3035 阅读 · 2 评论 -
SwiftUI 学习路线图
基本苹果今年整理了一份 SwiftUI 教程,这是一项出色的工作。属性包装器是用于支持 SwiftUI 框架的 Swift 语言新功能之一。要了解最重要的属性包装器,例如@State,@Binding,@ObservedObject,@EnvironmentObject 和@Environment.• https://developer.apple.com/tutorials/swiftui/• https://swiftwithmajid.com/2019/06/12/understan转载 2021-09-23 21:48:49 · 386 阅读 · 0 评论 -
SwiftUI 学习资料
记录学习学习SwiftUI过程中遇到的一些好的学习资料官方文档SwiftUI TutorialsSwiftUI DocumentationCombine Documentation视频WWDC 视频Introducing SwiftUI: Building Your First AppSwiftUI EssentialsData Flow Through SwiftUIBuilding Custom Views with SwiftUIIntegrating SwiftUISwi.转载 2021-09-21 19:46:37 · 302 阅读 · 0 评论 -
在SwiftUI中使用UIKit视图
转载一个大佬的博客在SwiftUI中使用UIKit视图转载 2021-09-05 21:54:51 · 369 阅读 · 0 评论 -
如何在Swift 5中获得安全区域顶部和底部镶嵌
我正在寻找一种方法来获取屏幕顶部和底部的安全区域插入值(正确定位内容,以使其不被槽口或软件主页按钮覆盖)。我查看了stackoverflow并找到了这种方法,但是我在XCode中收到了不推荐使用keyWindow的警告。let window = UIApplication.shared.keyWindowlet topPadding = window?.safeAreaInsets.toplet bottomPadding = window?.safeAreaInsets.bottom...转载 2021-08-30 14:48:05 · 1470 阅读 · 0 评论 -
记录我遇到的一些优秀的git项目
适用于SwiftUIAlamofire:一个网络请求库。SDWebImageSwiftUI:一个网络图片请求库,是SDWebImage的一个分支。BBSwiftUIKit:一个用于下拉刷新和上拉加载更多的项目依赖。原创 2021-08-26 22:09:04 · 252 阅读 · 0 评论 -
CocoaPods、Carthage、SPM(swift packages manager) 对比总结
CocoaPods、Carthage、SPM对比转载 2021-08-27 09:52:51 · 546 阅读 · 0 评论 -
开源网络库Alamofire的安装及简单使用
1. 安装CocoaPods网址:COCOAPODS打开电脑上的终端(Terminal)在终端输入COCOAPODS官网提供的安装命令:sudo gem install cocoapods (如下图所示)终端工具上会要求输入电脑密码,然后等待安装(如果有VPN的话,可能会更快,安装完成后类似下图)2. 在项目中安装Alamofile在终端工具中使用命令语句定位到自己的项目文件夹下cd+空格+路径或者cd+空格,然后打开访达,将自己的项目直接拖到终端中终端工具上输入命原创 2021-08-25 12:10:39 · 1825 阅读 · 0 评论 -
State的学习与使用
对于@State修饰的属性的访问,只能发生在body或者body所调用的方法中。你不能在外部改变@State的值,只能@State初始化时,设置初始化值,它的所有相关操作和状态改变都应该是和当前 View 生命周期保持一致。在引用包装为@State的属性是,如果是读写都有,引用属性需要$开头,如果只读直接使用变量名即可State针对具体View的内部变量进行管理,不应该从外部被允许访问,所以应该标记为privateimport SwiftUIstruct User { va..原创 2021-08-10 11:02:57 · 2433 阅读 · 0 评论 -
SwiftUI 使用UserDefaults存储用户设置
UserDefaults:允许存储直接附加到应用程序的少量(没有具体的限制)用户数据存储在UserDefaults中的所有内容都会在应用程序启动时自动加载,如果存储的内容很多的话,就会导致应用启动速度变慢一般来说不超过512KB⚠️它是字符串类型import SwiftUIstruct UseUserDefaultsUIView: View { @State private var tapCount = UserDefaults.standard.integer(forKey: ".原创 2021-06-08 13:36:29 · 1434 阅读 · 0 评论 -
带圆角的边框
我们经常需要在一个元素的外面添加带圆角的边框,此时我们通常第一个想到的就是使用border和cornerRadius,但使用了这两个属性会发现效果很差,根本不是我们想要的。Text("Hello, World!") .padding() .border(Color.orange, width: 1) .cornerRadius(10)百度了一下发现需要使用overlay这个属性正圆形的边框Text("2") .font(.title) .padding() .overla.原创 2021-08-12 10:48:14 · 164 阅读 · 0 评论 -
ObservableObject、Observedobject、Published的学习与使用
ObservableObject:符合ObservableObject协议的类可以使用SwiftUI的@Published属性包装器自动声明对属性的更改,以便使用该对象的所有视图都可以重新调用其body属性,并与数据保持同步。ObservedObject:观测对象修饰器,被ObservedObject修饰的变量只要有变化就会自动更新Published: SwiftUI最有用的包装器之一,允许开发者创建出能够被自动观察的对象属性,SwiftUI会自动监视这个属性,一旦该属性发生了改变,会自动修..原创 2021-08-10 15:03:40 · 1295 阅读 · 0 评论 -
SwiftUI NavigationView和List的使用
稍微了解一点SwiftUI的都知道,SwiftUI中一些控件的子视图数量(⚠️这里说的数量是指写成特别死的一个一个子视图)是有限制的,一般不超过10个例如:VStackHStackZStackGroupList未来的容器本博客就是一个记录关于List中子视图数量超过10个的解决方案我这里结合了NavigationLink的使用,一般在网上找到的都是同一个视图循环,向里面塞内容,我这里有点特殊,每一个导航进去的新视图都是一个单独swift文件,实现的时候遇到的问题是每一个视图不知道.原创 2021-05-11 15:15:29 · 617 阅读 · 0 评论 -
获取屏幕尺寸
boundsvar screenBounds:CGRect = UIScreen.main.boundsbounds得到的是单位为点(point)的尺寸。var width: CGFloat = UIScreen.main.bounds.widthvar height: CGFloat = UIScreen.main.bounds.height这样就可以得到CGFloat格式的数据,进行一些处理。比如画格子之类的。nativeBoundsvar screenBounds: ..转载 2021-08-12 16:00:08 · 188 阅读 · 0 评论 -
EnvironmentObject的学习与使用
EnvironmentObject修饰属性是当前的环境变量,并在它自己以及它的子视图都可以直接使用,也可以叫做当前当前视图全局变量。import SwiftUIclass Student: ObservableObject { @Published var name = ""}struct UseEnvironmentObjectView: View { let student = Student() var body: some View { .原创 2021-08-10 16:33:00 · 878 阅读 · 0 评论 -
Binding的学习与使用
@Binding的作用是在保存状态的属性和更改数据的视图之间创建双向连接,将当前属性连接到存储在别处的单一数据源(single source of truth),而不是直接存储数据。将存储在别处的值语意的属性转换为引用语义,在使用时需要在变量名加$符号。通常使用场景是把当前View中的@State值类型传递给其子View,如果直接传递@State值类型,将会把值类型复制一份copy,那么如果子View中对值类型的某个属性进行修改,父View不会得到变化,所以需要把@State转成@Binding传..原创 2021-08-10 11:07:37 · 1091 阅读 · 0 评论 -
自定义修饰符
SwiftUI为我们提供了一系列内置修饰符,例如font(),background()和clipShape()。但是,也可以创建自定义修饰符来执行特定的操作。例如,我们可能遇到应用程序中的所有标题都应具有特定的样式,因此首先我们需要实现一个自定义的ViewModifier结构体,该结构体可以实现我们想要的功能:struct Title: ViewModifier { func body(content: Content) -> some View { content转载 2021-08-12 15:22:49 · 312 阅读 · 0 评论 -
SwiftUI 实现页面跳转的几种方式
// 实现页面跳转// From:NotifyUIView.swift// To:HomeSecondUIView.swiftimport SwiftUIstruct NotifyUIView: View { var body: some View { NavigationView{ ScrollView(.vertical, showsIndicators: true, content: { VStack(a原创 2021-05-05 15:49:39 · 7900 阅读 · 2 评论 -
SwiftUI 使用TabView创建底部导航栏的小案例
import SwiftUIstruct FirstUIView: View { @State var show = true var body: some View { TabView{ PageOneUIView() .tabItem { Image(systemName: "house") Text("Home")原创 2021-04-27 14:24:47 · 580 阅读 · 0 评论