
Swift
文章平均质量分 60
Swift开发语言实例总结
小熊空间
走走、看看、学学、用用
展开
-
SwiftUI导航栏隐藏以及侧滑返回问题
导航栏隐藏.navigationBarHidden(true)当我们设置这个的时候,导航栏将会被隐藏,但同时侧滑返回也会失效,这时候我们可以添加导航扩展侧滑返回问题修正extension UINavigationController: UIGestureRecognizerDelegate { override open func viewDidLoad() { super.viewDidLoad() interactivePopGestureRecogni原创 2021-05-12 16:51:04 · 2405 阅读 · 1 评论 -
Swift编译器架构
Swift编译流程图Swift Code : 开发者自己编写的代码Swift AST : 根据swiftc生成语法树Raw Swift IL : Swift特有的中间代码Canonical Swift IL : 更加简洁的中间代码版本LLVM IR : 编译器前端处理完后转交给LLVM生成后端中间代码Assembly : 后端对代码进行优化转变成汇编代码Executable : 汇编代码转换成可执行的二进制代码官方介绍Parsing: The parser is a simple原创 2020-08-05 16:30:03 · 1030 阅读 · 0 评论 -
SwiftUI中使用UIKit
使用UIViewController实现以下方法@Binding var uiImage: UIImage?@Environment(\.presentationMode) var presentationModefunc makeUIViewController(context: Context) -> UIImagePickerController { let picker = UIImagePickerController() picker.delegate原创 2020-07-20 09:28:58 · 1468 阅读 · 0 评论 -
Swift数据获取和建模
本地文件数据读取和建模从项目Bundle中获取json文件中数据源码参考我们可以先写一个Bundle扩展类方便读取数据extension Bundle { func decode<T: Codable>(_ file: String) -> T { guard let url = Bundle.main.url(forResource: file, withExtension: nil), let data = try? Data(c原创 2020-07-15 14:52:58 · 283 阅读 · 0 评论 -
Swift之Codable协议的实现
问题如何给带有@Published属性的calss遵循Codable协议class Order: Codable { @Published var num = 1 @Published var isAddIce = false @Published var isAddSugar = false @Published var name = "" @Published var phone = "" @Published var address = "原创 2020-07-15 11:44:57 · 1383 阅读 · 0 评论 -
SwiftUI Buton点击区域问题
问题我们在创建一个Button的时候,通常会给它一个背景色,这样的按钮看起来更醒目于是我们实现该按钮如下Button(action: { self.alertTitle = "兑换" self.showAlert = true}) { Text("兑换")}.buttonStyle(BorderlessButtonStyle()).foregroundColor(.blue).frame(width: UIScreen.main.bounds.width - 40,原创 2020-07-13 14:38:48 · 1650 阅读 · 0 评论 -
SwiftUI 解决List中点击一个Button时多个Button同时触发问题
SwiftUI使用List列表时,当两个Button同时存在于一个cell的时候,不论点击哪个,最后两个点击事件都会执行问题代码以下是我们在List中写的两个按钮,会出现该问题List { VStack(spacing: 20) { Button(action: { print("点击按钮一") }) { Text("按钮一") } Button(action: {原创 2020-07-13 14:03:10 · 1814 阅读 · 0 评论 -
SwiftUI之猜国旗APP及色彩类控件
源码地址效果图思路添加背景色控件垂直排列点击事件处理代码实现struct ContentView: View { @State private var showAlert = false @State private var alertTitle = "" @State private var countries = ["中国", "日本", "法国", "德国", "意大利", "俄罗斯", "英国", "美国"] @State p原创 2020-07-12 10:29:46 · 335 阅读 · 0 评论 -
SwiftUI之收货地址页面实现
效果思路表单列表可用Form实现分成三段实现填写表单选择标签提交按钮实现代码struct ContentView: View { // State属性包装器 属性就可以在struct中进行更改 @State private var name = "" @State private var phone = "" @State private var address = "" @State private var tagIndex = 0原创 2020-07-12 10:18:32 · 361 阅读 · 0 评论 -
Swift学习之扩展Extension
// 系统实现 3的2次方let xx = pow(3, 2)// 扩展Int类型方法extension Int { // 实现平方 func squared() -> Int { return self * self } // 判断是否为偶数 var isEven: Bool { return self % 2 == 0 }}let xxx = 3.squared()let bbb = 8.i原创 2020-07-12 10:09:45 · 167 阅读 · 0 评论 -
Swift学习之闭包Closures
无参数和返回值let learniOS = { print("学习iOS")}learniOS()带有参数的闭包参数lan, in将参数与函数体隔开let learn = { (lan: String) in print("学习\(lan)")}learn("Swift")带参数和返回值的闭包return为一行时可省了returnlet learn1 = { (lan: String) -> String in return "学习\(lan)"}原创 2020-07-12 10:06:10 · 182 阅读 · 0 评论 -
SwiftUI 2020年WWDC演示示例
整体效果代码实现文件目录SandwichesApp.swiftimport SwiftUI@mainstruct SandwichesApp: App { // 定义一个私有的状态对象 store @StateObject private var store = SandwichStore() var body: some Scene { WindowGroup { // 将store传递给列表页 Content原创 2020-07-01 17:42:33 · 317 阅读 · 0 评论 -
R.swift安装和问题解决
安装官网地址照着官网配置即可,这里中文翻译下添加 pod 'R.swift' 执行pod install在TARGETS-Build Phases点击加号添加New Run Script Phase在新创建的Run Script拖拽到Compile Sources上方,添加脚本"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.generated.swift"在Input Files中添加 $TEMP_DIR/rswift-lastrun 在O原创 2020-06-09 10:43:57 · 1668 阅读 · 0 评论 -
栈和队列原理与实现
文章目录栈队列栈和队列相互转换用栈实现队列用队列实现栈栈后进先出,栈中弹出的元素总是你最后放进去的那个类似于数组,只是限制了存取操作的灵活性。压栈是将元素压入数组尾部在数组的头部插入元素是一个很耗时的操作,它的时间复杂度为 O(n),因为需要将现有元素往后移位为新元素腾出空间。而在尾部插入元素的时间复杂度为 O(1)栈只允许使用者从栈顶压入(push)元素,从栈顶弹出(pop)元素,取得(peek)栈顶元素但不弹出。栈的几个要素:push 入栈pop 出栈peek 取得栈顶元素is原创 2020-06-02 14:03:28 · 543 阅读 · 0 评论 -
Sign In With Apple前端和后端
在2019年的WWDC 上, 苹果要求使用第三方登录的应用也必须接入苹果账号登录,从2020年6月30日开始,应用程序更新必须遵循这些指导方针,否则影响上架。Sign in with AppleSign in with Apple makes it easy for users to sign in to your apps and websites using their Apple ID. Instead of filling out forms, verifying email addresse原创 2020-06-01 14:34:40 · 2304 阅读 · 0 评论