OC无法做到面向协议开发,而Swift可以,因为Swift可以做到协议方法的具体实现,而OC不行面向对象开发传统的面向对象开发思维方式是将类中实现的相似方法抽取出来,接着放入一个Base类,然后继承于Base类后各个类即可找拥有相同的方法,不用再一个个手动实现。比如:一个Person类,一个Dog类,它们都拥有方法eat,那么就可以新建一个Animal类,将eat方法抽取出来放入其中,然后将Per
转载 2023-12-15 09:36:28
71阅读
好的工具&资源,会带来更多的灵感。本期 fir.im Weekly 精选了一些实用的 iOS,Android 的使用工具和源码分享,还有前端、UI方面的干货。一起来看下:)Swift 开源项目精选由@SwiftLanguage分享。“基于《Swift 语言指南》开源项目收录,做了一个甄别、筛选,并辅以一句话介绍。来源 GitHub: ”Github 的 Swift 库已尽收眼底,
43个在GitHub上的优秀Swift开源项目推荐[导读]拥有着苹果先天生态优势的Swift自发布以来,各种优秀的开源项目便层出不穷。本文作者站在个人的角度,将2014年Swift开源项目做了一个甄别、筛选,从工具、存储、网络、界面、框架到Demo以及完整应用等,满满的干货。作为一门集百家之长的新语言,Swift拥有着苹果先天的生态优势,而其在GitHub上各种优秀的开源项目也层出不穷。本文作者@
转载 2023-12-13 22:13:50
181阅读
作为一门集百家之长的新语言,Swift拥有着苹果先天的生态优势,而其在GitHub上各种优秀的开源项目也层出不穷。本文作者@SwiftLanguage从2014年6月苹果发布Swift语言以来,便通过跟踪、归纳、汇总持续更新《Swift语言指南》半年有余。“轮子”工具类  SwiftyJSON:GitHub上最为开发者认可的JSON解析类 Dollar.swift:Swift版Lo-Da
目录“轮子”工具类存储类网络类图片类界面类框架类“车子”示例项目完整应用“轮子”工具类项目开发者备注SwiftyJSONtangplin, lingoerGitHub 上最为开发者认可的 JSON 解析类Dollar.swiftAnkur PatelSwift 版 Lo-Dash (或 underscore )函数式工具库OAuthSwiftDongri Jin国外主流网站 OAut
转载 2023-09-05 16:24:28
267阅读
如果你是位iOS开发者,或者你正想进入该行业,那么Swift为你提供了一个绝佳的机会。Swift的设计非常优雅,较Obj-C更易于学习,当然也非常强大。为了指导开发者使用Swift进行开发,苹果发布了一系类的技术文档,比如The Swift Programming Language(中文)和Using Swift with Cocoa and Objective-C(中文),同时苹果也开通了其官方
关于我们 SwiftOldDriver 是刚刚成立的一个 Swift 开发者聚贤地,这个名字意为中文的老司机,没错,老司机这就来带你了。欢迎广大 Swift 开发者一起前来学习交流。SwiftOldDriver ;SwiftOldDriver ;GitHub:SwiftOldDriver 。 这个组织的目标是通过汇集优秀一线开发者分享的知识,让大家在 Swift 的编程道路上走的更平坦一些。 我
转载 2023-06-26 15:16:13
249阅读
背景前面已输出多个系列:《十余种编程语言做个计算器(https://cxyxy.blog.csdn.net/article/details/128761660)》《十余种编程语言写2048小游戏(https://cxyxy.blog.csdn.net/article/details/128696358)》《17种编程语言+10种排序算法(https://cxyxy.blog.csdn.net/ar
原创 2023-01-25 19:10:46
273阅读
置顶菜鸟入门,各位大佬轻喷,如有谬误之处欢迎讨论建议,也欢迎各位道友与我同行“不积跬步,无以至千里;不积小流,无以成江海”状态变量的定义如果我们把一个视图结构体类比为vue中的一个组件那么类比vue中的data属性,定义一个变量,它被引用时,它的变化会直接反应到视图上struct ContentView: View { // 定义一个私有的状态变量 test 它的初始值是字符串1
转载 2023-11-11 07:19:41
98阅读
苹果近期推出了一个全新的 SwiftUI 框架,可以极大地提高 iOS 上 UI 界面的开发效率。今天小彭就用 SwiftUI 来实现一个新闻资讯 app,看看能有多快。受篇幅所限,我们将通过上下两篇文章为大家介绍如何实现一个完整的新闻资讯 app,本篇主要内容有:SwiftUI 的基础知识:预览、View 协议、修饰器、@State 特性等。使用 NavigationView、Navi
转载 2023-12-08 22:06:46
108阅读
基础知识sheet在给定条件为真时显示工作表。func sheet<Content>(isPresented: Binding<Bool>, onDismiss: (() -> Void)? = nil, content: @escaping () -> Content) -> some View where Content : ViewisPresent
转载 2023-05-29 16:24:11
205阅读
@State@State是一个属性包装器,可以用来描述视图的状态。 SwiftUI会将其存储在View struct之外的特殊内存中, 只有相关视图才能访问它。当 @State 装饰过的属性发生了变化,SwiftUI 会根据新的属性值重新创建视图struct ProductsView: View { let products: [Product] @State private v
转载 2023-10-11 10:45:58
143阅读
Button构建方法Button 的构建主要有以下两种方法:// 1、字符串构建,支持本地化字符串 Button("Hello World") { // action } // 2、自定义样式 Button { // action } label: { VStack(spacing: 8) { Image(systemName: "square.and.arrow.up")
UIToolbar一种控件,它在界面的底部边缘显示一个或多个按钮。class UIToolbar : UIView总览 要创建工具栏项,请使用类。要将工具栏项添加到工具栏,请使用方法。UIBarButtonItemsetItems(_:animated:)表示项目的正常状态和突出显示状态的工具栏图像来自您使用类的继承image属性设置的图像。图像用工具栏的着色。UIBarItemtintColor
转载 2024-06-03 19:26:27
48阅读
我们知道在SwiftUI中,如果修改了@State属性包装器修饰的值类型变量,会引起View自身的重新渲染,也就是调用body方法。此时该View的struct是不会重新创建的,但是body方法里的各种子View会被重新创建。举个例子:import SwiftUI class StateObjectClass:ObservableObject{ let type:String
转载 2023-11-28 04:42:17
58阅读
一、前言在 UIKit 的框架中,我们时常使用 UINavigationViewController 来管理页面的 push 和 pop,这是页面管理的基本操作。而到了 SwiftUI,该操作是交由 NavigationView 和 NavigationLink 来完成。本文先从 NavigationView 的基本应用开始,再补充如何灵活的使用 NavigationView 来完成很多更细节化的
  自动布局虽然在iOS6的时候已经推出,不过由于各个原因并没有被开发组广泛使用。一方面是大家的app支持版本都是低于iOS6的,另一方面来说是Xcode支持木有现在这么好。以前由于iPhone设备相对固定,所以在纯代码,纯坐标的布局下很流行,不过现在随着iPhone6发布,如果还要写一大堆乱七八糟的绝对坐标去适配,那工作量和维护成本是很大的。下面的一些基础直接拿小伙伴分享整理的吧,之后向大家推荐
作者 | 黄兢成SwiftUI 最厉害的地方是其与 Xcode 深度集成,可以实时刷新预览,这将会改变 UI 的开发方式。另外其声明式语法写起来也挺方便。SwiftUI 的声明式语法,本身就是 Swift 的语法,属于语言内部 DSL。用了一些不太常见的语法特性,乍一看让人觉得很神奇。DSL(Domain Specific Language) 的概念见附录 1。本文讨论 SwiftUI
转载 2023-08-28 22:40:10
173阅读
这里使用代码实现大概过程:  1、创建工具条  2、创建插入条  3、添加头像、标签、删除按钮  4、点击头像获取标签信息 做一个简单的联系人列表,可以添加删除联系人,现在还没有添加头像和文字,接下来慢慢添加 1、如何在UIToolBar两头出现两个按钮bar button item可是在按钮中间添加一个bar button item,然后设置按钮的属性Identifier为F
置顶菜鸟入门,各位大佬轻喷,如有谬误之处欢迎讨论建议,也欢迎各位道友与我同行“不积跬步,无以至千里;不积小流,无以成江海”继续上文中已经实现封装以及父子组件传值。但是在调试的过程中发现了一个bug:由于TodoList 界面被分成了两个 Section,如果我们从下方开始点击完成,删除的时候出现了删除的那一项永远都是第一个分组里面的,等第一个分组里面的被删完了之后才会删除第二个分组,如下图: 很显
转载 2024-04-10 06:09:41
59阅读
  • 1
  • 2
  • 3
  • 4
  • 5