- 博客(152)
- 资源 (2)
- 收藏
- 关注

原创 iOS中的多线程开发技术第一篇(GCD)
多线程编程是现代应用程序开发中的一个重要部分,尤其是在 iOS 开发中,它可以帮助我们提高应用的性能和响应速度。iOS 提供了多种多线程编程技术,包括 GCD(Grand Central Dispatch)、NSThread、NSOperation 和 pthreads。本文将详细介绍这些多线程技术,帮助你理解并掌握它们的使用。
2024-07-24 02:21:14
1393

原创 Flutter禁止及交互的两种方式
这是我知道的两种禁止点击事件的方法,两种方式都可以实现禁止点击事件的效果,可以根据需要来选择,如果你有其他的方法,可以给笔者留言,大家一起学习,一起进步。
2020-07-02 00:08:34
5671
1

原创 Flutter实现iOS TabBarController效果和android TabHost效果
先上截图, 如何实现下图的效果呢。对于iOS开发者,我们可以使用UITabBarController来实现,对于android开发者,我们可以使用FragmentTabHost来实现。在Flutter中并没有这两个控件,进入正题,我们看看在Flutter中我们如何使用Flutter中的PageView来实现这种效果。
2020-06-22 09:43:31
1113
1

原创 UIScrollView的Content Size, Content Inset属性
做iOS有好长时间了,今天再次写到UIScrollView的时候再次遇到了ContentSize,ContentInset,Scroll Indicator等属性,想起刚刚入门的时候的困惑,决定把它写下来,做个记录,以后忘记的时候也可以温故知新。也希望给初学者一个好的借鉴,少走点弯路,嘿嘿,不多说了,进入正题,第一次写博客,语言组织可能不太好,如果错误或者说的不准确的地方还望各位大神们多多指正。
2014-12-27 16:15:26
1718
1
原创 超详细!RxSwift 中的 BehaviorRelay 使用教程(含原理 + 示例 + 实战)
在 iOS 开发中,使用 RxSwift 构建响应式架构(如 MVVM)越来越流行。我们经常会遇到“需要持有某个状态值,并且随时通知观察者”的需求,这时你会发现 BehaviorRelay 几乎无处不在。今天这篇文章,我们就来深入剖析 BehaviorRelay 是什么、怎么用、适合用在什么场景中,以及实战中的最佳实践。1.什么是 BehaviorRelayBehaviorRelay 是 RxCocoa 中封装的一个类,用于代替旧版的 Variable(已废弃)。
2025-05-09 00:11:39
742
原创 用 RxSwift 实现 UITableView 的响应式绑定(超实用示例)
在 iOS 开发中,UITableView 是我们最常使用的组件之一。传统的写法需要设置 delegate、datasource,实现多个方法。而使用,我们可以让列表渲染逻辑更清晰、响应式,更符合 MVVM 模式。这篇文章将手把手教你用 RxSwift 来绑定 UITableView,构建一个“设置”页面,包括多个 section 和点击事件。一、环境准备1.安装 RxSwift 和 RxCocoa首先我们要安装 RxSwift 和 RxCocoa。
2025-05-02 02:50:29
881
原创 对Mac文字双击或三击鼠标左键没有任何反应
在使用Mac系统的时候,使用Apple无线鼠标,双击左键能够选取某个单词或词语,三击左键能够选取某一行,(百度、Google等搜索引擎的搜索框都是能都选取的)。现在 选中文字进行双击和三击都不能选取了,记录下接解决方案。在使用Mac系统的时候,使用Apple无线鼠标,双击左键能够选取某个单词或词语,三击左键能够选取某一行,(百度、Google等搜索引擎的搜索框都是能都选取的)。现在 选中文字进行双击和三击都不能选取了,记录下接解决方案。仔细排查了原因,发现原来是自己调整了步骤把鼠标的响应速度调节快了。
2025-04-25 22:07:57
697
原创 iOS项目实现国际化的详细步骤
在全球化的今天,让 iOS 项目支持国际化,以便吸引来自世界各地的用户,显得尤为重要。接下来,我们就深入探讨一下 iOS 项目实现国际化的完整过程。
2025-04-15 01:17:12
978
原创 Xcode警报“Ignoring duplicate libraries: ‘-lc++’” 警报
有时候我们会看到Xcode警报:Ignoring duplicate libraries: ‘-lc++’
2025-04-10 22:51:41
666
原创 深入理解 RxSwift 中的 Driver:用法与实践
在iOS开发中,响应式编程框架RxSwift为我们提供了强大的工具来处理异步事件和数据流。而在 RxCocoa 中,Driver是一个专门为驱动UI而设计的概念,它简化了界面绑定、线程管理和错误处理的工作。本文将详细讲解Driver的定义、特性、使用场景以及具体代码示例,帮助你快速上手并在项目中应用。一、什么是DriverDriver是RxSwift的姊妹库 RxCocoa 中的一种特殊 Observable 序列。
2025-04-10 21:54:30
466
原创 RxSwift 学习笔记第六篇之RxCocoa实现UITableView
前面的文章介绍了Observable、Observer、Operator的用法,下面我们结合实际中的例子来看一下RxSwift在项目中的使用。一、实现一个简单的下拉刷新列表我们以下面的UI效果如为例:点击按钮的时候,生成生成一个随机数,然后自动更新两个随机数的值。图1.实现一个下拉刷新demoinitUI()loadData()loadData()"随机数字---\(Int.random(in: 1...100))"二、使用RxSwift+RxCocoa实现。
2025-03-21 03:15:13
514
原创 Swift中的frozen关键字
它通过限制类型的继承和扩展,允许编译器做出更为积极的优化。它的作用是告诉编译器,某个类或结构体是不可扩展的,意味着这个类型不会再被子类化或修改,这样编译器可以做出一些优化。
2025-03-18 03:23:23
331
原创 RxSwift 学习笔记第五篇之RxSwift中的操作符
在 RxSwift 中,Operator(操作符)用于对数据流进行处理,使得异步编程更加直观和易读。Operators 是 Rx 的核心组成部分,它们使得你能够通过链式调用对数据流进行转换、过滤、组合等操作。RxSwift 的 Operators 让开发者能够更轻松地处理异步事件,提高代码的可读性和维护性。本文将介绍 RxSwift 中常见的几种操作符,并通过示例展示它们的使用场景,帮助你更好地掌握 RxSwift 中 Operator 的运用。一、Operator 的使用场景。
2025-03-18 02:52:55
806
原创 RxSwift 学习笔记第四篇之RxSwift在项目中的简单应用
在上面的两篇文章中,我们了解到了RxSwift中的Observable和Observer,本篇文章我们主要介绍下RxSwift项目中的使用。
2025-03-17 22:40:16
546
原创 RxSwift 学习笔记第三篇之RxSwift的Observer
在 RxSwift 中,订阅者(Subscriber) 负责接收 Observable 发送的数据流并对其进行处理。没有订阅者时,Observable 不会被触发(Hot Observable 除外)。分析:订阅后 Observable 开始执行订阅者 subscribe 收到 next 事件,然后 completed我们可以调用观察者的subscribe直接订阅。特点:event 可能是 .next(value), .error(error), .completed。
2025-03-16 04:25:15
1018
原创 Swift 中 associatedtype 的用法详解
在 Swift 的协议中,我们无法直接使用泛型 <T>,但可以使用 associatedtype 关键字来声明一个占位类型,让协议在不确定具体类型的情况下仍然能够正常使用。
2025-03-15 00:51:56
986
原创 RxSwift 学习笔记之RxSwift的调试
在 RxSwift 中,调试(debug)是非常重要的,尤其是当你的流变得非常复杂时。RxSwift 提供了很多有用的工具和操作符来帮助你在开发过程中进行调试和跟踪事件流。一、RxSwift 中的调试工具。
2025-03-14 04:23:24
489
原创 RxSwift 学习笔记第二篇之Observables
这篇博客主要介绍Observables的用法。是 Rx的核心。在 Rx中我们看到“”、“”和“Sequence”在 Rx 中互换使用,其实它们是一个东西。在RxSwift 中,我们把它们统一成为序列。发出事件(数据流)被订阅响应事件.next(value):发送一个可能的值.error(error):发送错误,流终止.completed:完成,流终止。
2025-03-14 00:38:00
1305
原创 iOS开发设计模式篇第二篇MVVM设计模式
在本文的代码中,我们提供一个初始化的方法,把Model中的数据转成要展示的name和age属性,同时我们通过KVO的方式监听UserModel中的变化,实时获取变化之后的最新值。MVVM 是一种强大的设计模式,在 iOS 开发中,特别是复杂的应用程序中,它能显著提高代码的可维护性和扩展性。ViewModel(视图模型层):负责将 Model 转化为 View 可以使用的数据,同时接收 View 的操作并更新 Model。在本文的例子中,Model表示示例中使用到的数据模型,即用户名和年龄。
2025-01-23 01:15:30
1530
原创 常用排序算法之插入排序
插入排序(Insertion Sort)是一种简单且直观的排序算法,常用于小规模数据的排序或作为其他复杂排序算法的一部分(如快速排序的小数组优化)。本文将详细介绍插入排序的基本原理、实现代码、时间复杂度及其适用场景,帮助你轻松掌握这一算法。
2025-01-21 02:17:13
920
原创 iOS中的多线程开发技术第四篇之IO操作
在 iOS 开发中,数据访问的多线程环境非常普遍,例如缓存系统、数据库查询、文件操作等。对于多读少写的场景,设计一个高效且线程安全的方案至关重要。本文将深入介绍多读少写的设计思想,并结合实际代码示例进行详细讲解。
2024-12-05 01:41:31
918
原创 深入理解Flutter生命周期函数之StatefulWidget(一)
在Flutter中,生命周期函数是管理StatefulWidget状态的关键机制。通过生命周期函数,我们可以控制Widget的初始化、更新和销毁过程,使得应用的状态管理和资源控制更加灵活。本文将详细介绍Flutter中的生命周期函数,帮助你更好地掌握Flutter应用的生命周期。
2024-11-15 05:22:39
1907
原创 Dart中的一些常用注解
在 Flutter 中,Dart 提供了多种注解用于增强代码的表达能力,帮助编译器或分析工具理解代码结构,提升可读性和安全性。标识一个参数是必填的,用在函数或构造函数的命名参数中。当参数使用了 @required,如果调用时未传递该参数,分析器将发出警告。// title 是必填参数注意:@required 已经被废弃,现在可以直接使用 Dart 语言自带的 required 关键字。用于重写父类方法,标识子类对父类方法进行了重写。
2024-11-09 05:22:46
661
原创 Flutter 中 Provider 的使用指南
它使用 InheritedWidget 作为底层实现,通过提供一种订阅与更新的机制,能够让应用在状态变化时自动刷新对应的 UI,极大地提升了开发体验。在应用的根组件中使用 ChangeNotifierProvider,将 Counter 类实例注入到 Widget 树中,使整个应用都可以访问它的状态。在这个例子中,Consumer 会自动监听 Counter 对象的变化,并在 count 值更新时重建它内部的 UI。在使用 Provider 之前,我们需要定义一个简单的状态类。
2024-11-08 01:56:20
2252
原创 Swift中的Combine
Combine 是 Apple 在 iOS 13 中引入的响应式编程框架,它用于处理 Swift 中的异步操作和数据流。通过 Combine,开发者可以将异步操作(例如网络请求、用户输入、通知等)组合成数据流,并对其进行操作和观察。网上搜了下Combine的教程,发现要么是翻译的Apple的文档,要么SwiftUI+Combine直接绑定起来使用,这无疑给没有使用过SwiftUI的同学增加了学习的成本,今天决定写一下自己对Combine的理解希望能帮助到准备入门Combine的同学们。
2024-11-08 01:21:07
2669
原创 Flutter中有趣的级联语法
在 Flutter(Dart)中,级联操作符(cascade notation) 使用两个点 .. 表示,可以让你在对象上连续调用多个方法或设置多个属性,而不需要在每一步都重复对象的名字。这种语法在链式调用和构建复杂对象时非常有用。
2024-11-05 19:46:01
730
原创 Flutter中的Extension关键字
在 Dart 和 Flutter 中,extension 关键字允许开发者为现有的类添加新的功能,而无需修改原有类的代码。这种特性叫做扩展(extension),它使代码更加灵活且易于组织,有助于避免继承带来的复杂性。以下是关于 extension 的详细介绍。
2024-11-04 20:43:37
726
原创 深入了解 Flutter 中的泛型:让代码更灵活更安全的关键
泛型(Generics)是编程语言中一种关键机制,它允许我们在类、接口、方法等结构中使用类型参数,而不必指定具体的类型。在 Flutter 中,泛型可以帮助我们编写出更灵活的代码,同时提升类型安全性。Flutter 中广泛使用了泛型,使得框架中的许多工具和库具备更强的灵活性。比如,Flutter 中的 List 就是一个泛型类,我们可以指定列表存储的类型,让它们在编译时确定类型,避免运行时类型错误。这篇文章主要介绍Flutter中的泛型(Generics)。
2024-11-04 02:05:01
1044
原创 全面解析Flutter中的Stream用法及实际应用
1. 什么是Stream?在 Flutter 中,Stream 是一种用于处理异步数据流的工具。它的作用类似广播频道,允许连续推送数据流,并让其他部分实时监听这些数据。Stream 广泛应用于需要异步处理的场景,比如网络请求、用户输入、数据流实时更新等。2. Stream的分类。
2024-11-04 00:50:32
1792
原创 极简实现酷炫动效:Flutter隐式动画指南第三篇自定义Flutter隐式动画
上两节博客分别介绍了Flutter中的隐式动画的基础知识以及使用隐式动画实现的一些动画效果。当系统提供的隐式动画不能满足我们的需求的时候,我们还可以通过TweenAnimationBuilder 自定义我们的隐式动画。下面进入正题,我们了解下TweenAnimationBuilder的一些知识。
2024-11-02 11:54:04
1268
原创 极简实现酷炫动效:Flutter隐式动画指南第二篇之一些酷炫的隐式动画效果
在上一篇文章中,我们介绍了Flutter中的隐式动画的一些相关知识,在这篇文章中,我们可以结合多个隐式动画 Widget 在 Flutter 中创建一些酷炫的视觉效果,比如弹性按钮、旋转动画、颜色过渡等。以下示例展示如何组合不同的隐式动画,以实现更复杂的视觉效果。1.弹性放大按钮效果我们可以通过结合隐式动画的Widget组件并且通过设置动画的属性,实现一个弹簧效果。效果如下:图1.使用AnimatedContainer实现弹簧动画效果@override_isTapped;});
2024-11-01 19:17:36
1467
原创 GetX在使用过程中一些问题
在 GetX 中,使用 Get 提供的功能可以极大简化应用状态管理、路由导航和依赖注入,但也可能会带来一些副作用。了解这些潜在副作用可以帮助开发者在使用 GetX 时规避潜在问题,编写更健壮的代码。
2024-10-31 03:13:47
1047
原创 GetX中一些非常有用的组件(GetView, GetWidget、GetxService)
这篇文章主要介绍下GetView、GetWidget、GetService的用法。
2024-10-31 02:42:30
2083
原创 使用GetX实现GetPage中间件
GetX 中间件(Middleware)是 GetX 框架中的一种机制,用于在页面导航时对用户进行权限控制、数据预加载、页面访问条件设置等。通过使用中间件,可以有效地控制用户的访问流程,并在适当条件下引导用户到所需页面。这篇文文章主要介绍下GetX中间件的用法。
2024-10-31 01:05:56
1321
2
原创 深入浅出 GetX:超详细实用指南,全方位掌握 Flutter 开发利器第四篇之利用get_cli提高工作效率
get_cli 是 GetX 框架的官方命令行工具,为 Flutter 项目提供了快速生成代码和管理项目结构的便捷方式。它极大地提升了开发效率,让开发者专注于核心功能实现,而不必在项目的基础结构上花费太多时间。这篇文章主要是介绍下get_cli的用法。
2024-10-28 22:09:51
937
移动+Swift(MVVM)+Swift+MVVM的实例代码(使用KVO实现)
2025-01-23
Flutter+Flutter+Getx+GetX中路由管理用法,跟博客一起的Demo
2024-10-31
Flutter+Getx+状态管理、路由管理、getx用法+用于展示Getx用法
2024-10-28
Flutter+Getx+状态管理、路由管理、getx用法+用于展示Getx用法
2024-10-28
移动端+OC/Auto Layout+自动布局 UIStackView+iOS UIStackView
2024-08-14
移动端国际化+flutter+Flutter getx+GetX实现国际化
2024-07-16
Flutter+getx+dart+使用getx实现鉴权
2024-07-19
数据结构+顺序表的C语言实现
2024-04-24
Flutter+Flutter GetX状态管理+GetX状态管理+Getx状态管理
2024-03-16
flutter+getx+getx路由管理+getx用法
2024-03-16
iOS framework打包实例demos
2023-07-31
flutter路由跳转和传值方式demo
2022-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人