Swift
文章平均质量分 64
Ryanw丶
.
展开
-
SwiftUI实现图片轮播器
实现效果实现一个简单的图片轮播器,在SwiftUI中整合UIKit的UIPageViewController和UIPageControl。Modelstruct Landmark: Identifiable { var id = UUID() var name: String var park: String var imageName: String var image: Image { Image(imageName) }}原创 2021-03-10 13:15:57 · 1651 阅读 · 1 评论 -
SwiftUI 2 -- matchedGeometryEffect
简介适用于iOS14和Xcode12的新技术,matchedGeometryEffect是SwiftUI新的效果,可以篡改两个视图的大小和位置。基础SwiftUI已经为我们提供了无需matchedGeometryEffect工具的,篡改视图属性。在下面的例子中我们可以使用轻击矩形来实现大小改变动画。struct ContentView: View { @State private var isExpanded = false var body: some View {原创 2021-02-22 10:01:41 · 816 阅读 · 0 评论 -
iOS - Cell数据归档与反归档
待实现需求:加载Cell先使用本地数据优化用户体验,再请求网络数据重新加载。归档归档操作我们需要将加载App网络请求的数据归档实时写入沙盒中保存。iOS沙盒机制可以查看此文章我们这里将网络数据写入到Cache目录下Data目录下的list文件。使用NSSearchPathForDirectoriesInDomains取出沙盒路径。根据沙盒路径创建需创建文件路径。使用FileManager文件管理器创建相应的目录和文件。将对象(这里是类型数组)序列化成Data将data归档写入文...原创 2020-11-30 16:42:13 · 189 阅读 · 0 评论 -
iOS - 沙盒机制初探
沙盒机制什么是沙盒?沙盒通过限制应用的执行操作来显著提高操作系统的安全性,在iOS上一个应用无法访问另一个应用程序的沙盒。每一个应用都具有一个沙盒,是可以用来存储数据的目录。如果应用需要访问的数据不在沙盒上,则需要通过系统接口请求数据。例如:应用程序无法直接访问用户设备的照片,要访问用户照片第三方应用程序需要访问系统界面,系统界面增加一层安全性。沙盒在哪?在xcode工程中,使用NSHomeDirectory()来查看沙盒的根路径。func application(_ application: U原创 2020-11-26 16:22:17 · 771 阅读 · 0 评论 -
底部输入框组件的一次实践
底部输入框:常用于文章的评论,分享,点赞。造一个通用的组件能帮助开发使用。入坑点:一开始根据设计稿8种类型设置了枚举,通过关联值来传递参数,在viewdidload中switch type来动态添加子视图,根据初始化方法中是否带文本来添加按钮旁的文本,整个布局视图代码臃肿、繁琐重复,代码质量是十分差可重用性也差。改善思路:同事推荐官方navigationItem.leftBarButtonItems的思路来写,根据传入的item数组来动态创建。限制左右item的数量,根据item一次创建视图然后更.原创 2020-08-24 17:03:42 · 211 阅读 · 0 评论 -
Say Goodbye to SceneDelegate -- SwiftUI
Say Goodbye to SceneDelegate在WWDC20之前,使用SwiftUI创建视图,你必须将其包装在UIHostingController,Controller被包装在一个UIWindow,window在SceneDelegate中定义。import UIKitimport SwiftUI// Auto-generated codeclass SceneDelegate: UIResponder, UIWindowSceneDelegate { var window原创 2020-08-11 13:32:34 · 258 阅读 · 0 评论 -
Swift如何实现与JSON互转
JSONDecoder与JSONEncoder通过 Codable 协议实现Swift对象与JSON字符串之间的互转。public typealias Codable = Decodable & EncodableCodable 是 Decodable 和 Encodable 的类型别名。当你遵守 Codable 协议时,同时遵守Decodable 和 Encodable 协议。Swift 标准库类型都实现了 Codable , 比如 String , Double , Int 等,原创 2020-07-29 14:23:16 · 1986 阅读 · 0 评论 -
SwfitUI中some关键字是什么含义?
以下是打开新建SwiftUI项目的默认代码。import SwiftUIstruct ContentView: View { var body: some View { Text("Hello, World!") }}struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() }}ContentVie原创 2020-07-24 15:25:07 · 802 阅读 · 0 评论 -
iOS 设计模式MVC、MVVM初探
MVC 与 MVVMMVC说起MVC,必须拿斯坦福大学公开课上的这幅图来说明,这可以说是最经典和最规范的MVC标准。MVC在iOS中的实现思路: 一句话描述就是Controller负责将Model的数据用View渲染展示。MVC如何产生APP的实质就是界面与数据的交互。需要类负责界面的渲染展示,于是有了View需要类负责管理数据,于是有了Model我们设计的View应该能显示任意的内容,比如UILabel显示的文字应该是任意的而不只是某个特定Model的内容,所以我们不应该在View原创 2020-07-09 19:26:48 · 306 阅读 · 0 评论 -
iOS13移除StoryBoard
iOS13移除StoryBoard当我们想要使用纯代码构建时,不需要storyboard时如何删除呢?Objective-C删除Main.storyboard文件(SceneDelegate.h和SceneDelegate.m文件可删可不删)删除Info.plist文件Main storyboard file base name项和Application Scene Manifest项...原创 2020-02-25 18:32:44 · 1110 阅读 · 0 评论 -
App Store卡片过渡动画模拟
iOS的原生应用都是设计师和工程师精心设计的,Weather的scrollview滚动动画,Settting的interaction交互式动画,App Store的Card过渡动画等等。都有很多我们值得学习的地方,今天我们模拟App Store的卡片动画App Store动画模拟学习参考教程自定义过渡动画教程如何实现自定义过渡动画的方法不再讲述,这里直接实现动画过程。参考动画效果To...原创 2020-02-05 11:41:55 · 1582 阅读 · 0 评论 -
iOS Transform动画
Transform动画iOSTransform动画是基于frame属性结合animate方法构成的动画效果,应用于视图的二维、三维层次的变化。view.transform:是View的旋转、拉伸、移动等属性,是2D的,是CGAffineTransform属性。view.layer.transform:是layer层的3D变化,是CATransform3D 属性。view.transfo...原创 2020-02-04 12:28:26 · 633 阅读 · 0 评论 -
iOS自定义过渡动画
转场方式首先让我们来了解iOS转场的方式:UINavigationController push/pop UIViewController导航栏的转场UITabBarController 切换Tab的转场present/dismiss 模态的方式转场这是iOS提供的3种基本转场方式,默认的转场方式转场风格有限。例如模态转场中,尽管有modalPresentationStyle和mod...原创 2020-02-02 21:11:30 · 3786 阅读 · 0 评论 -
iOS AVFoundation
AVFoundationAVPlayerAVPlayer是一个控制器对象,用于管理媒体资源。AVPlayer基于本地文件或远程文件媒体播放。AVPlayer用于一次播放单个媒体资源,可以使用replaceCurrentItem(with:)方法重用播放器实例来播放气体媒体资源,但同一个时刻只能管理一个媒体资源,使用AVQueuePlayer来创建和管理媒体播放的队列。AVPlayer是一个动...原创 2020-01-20 20:08:24 · 966 阅读 · 0 评论 -
CollectionViewSlantedLayout
[Third-party-library-awesome-demo](https://github.com/ChinaWxq/Third-party-library-awesome-demoCollectionViewSlantedLayoutCollectionViewSlantedLayout is a subclass of the UICollectionViewLayout ...原创 2020-01-19 17:41:19 · 547 阅读 · 0 评论 -
iOS UITableView
UITableViewCell注册复用和不注册复用的问题如果混淆注册Cell、不注册复用Cell,就会引起Cell的乱用。不注册复用Cellfunc dequeueReusableCell(withIdentifier: String) -> UITableViewCell?Returns a reusable table-view cell object located by it...原创 2019-12-11 16:30:30 · 507 阅读 · 0 评论 -
位运算经典算法(Swift)
两个数的交换无符号整数二进制中1的个数第一种解法:循环遍历无符号整数二进制的每一位判断是否为1。如果二进制中有较多的0,每次右移一位做出判断会很浪费func countOfOnes(num: UInt) -> UInt { var count: UInt = 0 var temp = num while temp != 0 { count ...原创 2019-11-30 15:00:05 · 569 阅读 · 0 评论 -
极客时间——Swift学习笔记
Swift 编译过程LLVMLLVMLLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本,作为多种语言的后端。C/OC通过Clang编译器前端,Swift会先编译成Swif...原创 2019-11-28 16:50:06 · 854 阅读 · 0 评论 -
Swift入门
编码方式Swift的字母采用的是Unicode编码,Unicode叫作统一编码制,包含亚洲文字编码,如中文、日文、韩文甚至聊天工具的表情符号,原则上Swift命名很多样,但是仍需要遵守一定的命名规范。Unicode, 与ASCII一样,是一种跨语言、跨平台的文本编码标准。var 与 let如果数据类型是引用数据类型时候,最好声明为let,let声明的引用数据类型不会被改变引用(指针),但可...原创 2019-09-20 12:54:38 · 363 阅读 · 0 评论