自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

长沙火山

立志做一名优秀的软件工程师,在技术上追求一专多能,在思想上追求与时具进。

  • 博客(495)
  • 资源 (52)
  • 问答 (1)
  • 收藏
  • 关注

原创 iOS Secure Enclave

Secure Enclave 是一个绝对的安全环境,所以存放的当然也是最高机密的数据。那什么数据属于最高机密的数据呢?一般是用户的生物特征信息,比如指纹信息 TouchID、面部信息 FaceID 等。

2021-12-22 17:19:16 4812

原创 常用的加密算法

一、对称加密算法对称加密算法就是传统的用一个密码进行加密和解密。常用的对称加密算法算法密钥长度工作模式填充模式DES56/64ECB/CBC/PCBC/CTR/…NoPadding/PKCS5Padding/…AES128/192/256ECB/CBC/PCBC/CTR/…NoPadding/PKCS5Padding/PKCS7Padding/…IDEA128ECBPKCS5Padding/PKCS7Padding/…密钥长度直接决定加密强度

2021-12-01 11:02:33 7482

原创 国密算法介绍

一、前言加密是通过“加密算法”将明文加密成密文,可以通过“密钥”和“解密算法”将密文还原成明文。密码学中应用最为广泛的三类算法:对称算法(分组密码算法):AES/DES/SM4非对称算法(公钥密码算法):RSA/SM2摘要算法(杂凑算法):MD5/SHA-I/SM3二、国密算法的意义随着金融安全上升到国家安全高度,近年来国家有关机关和监管机构站在国家安全和长远战略的高度提出了推动国密算法应用实施、加强行业安全可控的要求。摆脱对国外技术和产品的过度依赖,建设行业网络安全环境,增强我国行业信息

2021-12-01 11:01:34 13997

原创 鸿蒙网络请求(下):工具类封装和使用

通过上一篇鸿蒙网络请求的教程,了解了网络请求的基本用法,这一篇文章主要是对上一篇鸿蒙网络请求代码的进一步封装,把网络请求封装成一个工具类。1. 网络请求工具类 RequestUtilpackage com.example.hmrequest.util;import ohos.hiviewdfx.HiLog;import ohos.hiviewdfx.HiLogLabel;import ohos.utils.zson.ZSONObject;import java.io.*;import ja

2021-08-05 15:50:29 1796

原创 鸿蒙网络请求(上):网络请求的使用

最近在学习鸿蒙开发,在鸿蒙网络请求这块遇到了困难。鸿蒙官网虽然提供了网络请求的API和代码事例,但是描述的过于简单,基本上就是贴代码,所以对于一个初学者来说,仍然看的是一头雾水。Github上也有很多第三方封装的鸿蒙网络请求框架,但是既然是学习就要从最基础的开始,而且那些网络请求框架大致看了下,感觉比较复杂,不太好下手。小编也是花了大概一周的时间,自己慢慢摸索,才入门了鸿蒙的网络请求。下面将小编的一些学习成果分享给大家,帮助大家少走弯路。一、需要添加网络请求权限在进行鸿蒙网络请求开发时,先要进行网络请求

2021-08-03 17:37:50 4563 1

原创 视频剪辑 图文教程

一米剪辑图文教程一、提取视频功能说明:提取视频是根据抖音视频链接地址提取无水印视频,能无痕提取抖音视频,并保存到自己的相册。图文教程:1、打开抖音app,找到自己想要下载的视频。点击分享按钮,找到 “复制链接” 按钮,然后点击按钮复制抖音链接。2、 点击 “提取视频” ,然后在文本框中输入刚刚在抖音复制的抖音链接,再点击 “提取视频” 按钮。3、等待视频解析完之后,直接点击 “导出到相册”,无水印视频就下载到相册了。...

2021-07-19 11:29:03 13950

原创 Android JNI开发一: JNI基础知识

JNI基础知识Android系统底层的框架大多采用的是C或者C++语言实现的,但是Android上层的框架是采用Java实现的,所以我们平常进行Android也是采用Java语言开发。虽然Android底层采用C或者C++实现,但是我们在进行Android开发的时候,却不能直接调用C或者C++,而是需要采用JNI来调用C或者C++,下面小编就为大家介绍什么是JNI?以及怎么使用JNI来实现调用C或者C++语言。一、JNI 介绍1.1 简介JNI 即 Java Native Interface,通俗的

2021-07-16 10:32:22 1815

原创 Android JNI开发四: 鸿蒙JNI开发​​​​​​​

一、JNI1.1 创建工程用 DevEco Studio 创建一个新的工程,我的 DevEco Studio 版本为2.1。创建工程第一步的时候,需要选择模版,请选择 Native C++ 这个模版。这个模版为我们提供了JNI开发的环境,我们在这个模版里可以更容易的使用JNI 去调用C语言代码。(1) 创建工程第一步:选择 Native C++ 模版,如下图所示:(2) 创建工程第二步:填写项目名称、项目存放目录,如下图所示:建议填写project name和小编的一样,因为后面的一些配置和包

2021-07-14 11:48:22 1701

原创 Android JNI开发三: SO库的使用

本篇主要介绍如何在普通的安卓工程中使用编译好的SO库文件。首先,新建一个普通的安卓项目工程,我的工程名叫SOTest。项目工程建好后,就将SO库引入到工程中。2.1 将SO库引入工程中在不同的CPU架构下,会被编译成不同的SO库,所以我们需要将整个的lib文件拷贝至我们的项目工程中。SO库需要拷贝到app目录下,路径一定要正确,否则有可能出现因为路径不对而加载不到SO库。2.2 配置SO库的路径在build.gradle文件中添加so库的路径配置和依赖配置,如下图所示:配置代码:

2021-07-09 16:58:24 4453 5

原创 Android JNI开发二: 如何生成SO库

1.tail假定日志文件为catalina.logtail -f catalina.log 该命令用来的查看动态的日志信息tail -fn 200 catalina.log 查看最后200行日志,且动态显示tail -f catalina.log | grep '过滤字符串' 显示存在需要过滤的字符串的行的动态的日志信息2.grepgrep '过滤字符串' catalina.log 从日志文件中过滤出字符串grep -r '过滤字符串' ./...

2021-07-09 16:50:45 2866 2

原创 WKWebView生成PDF

在使用 WKWebView 将网页内容保存为 PDF 文件时,您可以设置打印页面的大小和可打印区域,以确保生成的 PDF 文件符合您的需求。在 WKWebView 中,您可以使用 UIPrintPageRenderer 类的 paperRect 和 printableRect 属性来设置页面的大小和可打印区域。

2024-04-08 21:21:47 428

原创 WKWebView的使用

在iOS中,WKWebView是WebKit框架提供的一个用于展示网页内容的控件,相比UIWebView有更好的性能和功能。

2024-04-08 21:21:09 197

原创 TypeScript快速入门

ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。要了解什么是ArkTS,我们首先要了解下ArkTS、TypeScript和JavaScript之间的关系:JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。

2024-04-05 17:15:53 1159

原创 Swift 代码注释的使用

在 iOS 开发中,代码注释是一种很好的实践,可以帮助他人更容易理解你的代码。通常可以在代码中使用注释来解释代码的功能、目的、实现细节等。通过添加适当的注释,可以提高代码的可读性和可维护性,帮助团队成员更好地理解和使用代码。

2024-04-05 08:15:00 134

原创 2.Swift基础控件:图标文字按钮

*枚举 设置 图片的位置*//**type :image 的位置Space :图片文字之间的间距*/break;break;break;break;

2024-04-04 21:38:42 509

原创 1.Swift基础控件:TableView列表

在 iOS 开发中,UITableView 是一个常用的界面组件,用于显示列表型数据。UITableView 可以展示大量数据,并支持滚动、分组、选择等功能,是开发 iOS 应用中常见的组件之一。分组显示:UITableView 可以按照分组的方式显示数据,每个分组可以有一个 header 和一个 footer。可定制的单元格:UITableView 中的每个单元格可以自定义样式,包括文本、图像、按钮等。滚动和重用机制:UITableView 支持滚动功能,并且具有重用机制,可以重复使用单元格,提高性能。

2024-04-04 21:36:29 505 1

原创 ElementUI+sortablejs实现列表拖拽功能

SortableJS 是一个用于实现拖放排序功能的 JavaScript 库,可以帮助开发者轻松地实现拖拽元素重新排序的功能。以下是 SortableJS 的基本用法。

2024-03-20 08:00:00 194

原创 iOS Bonjour介绍

Bonjour 是苹果提供的一种零配置网络服务发现技术,可以帮助设备在局域网内自动发现和连接到其他设备。使用 Bonjour 技术可以让开发者更容易地实现设备间的网络通信,无需手动配置 IP 地址或端口号。在 iOS 应用程序中,您可以使用 Bonjour 框架来实现局域网内设备搜索和服务发现。

2024-03-19 08:00:00 334

原创 iOS通过wifi连接硬件设备

app连接硬件,通过socket通信,通过socket设置ssid和密码,在各式各样的硬件上植入软ap,再利用手机连接软ap配置路由的ssid和密码, 然后智能硬件就可以自行连接了路由器了,也就实现了上网的功能.硬件中的软ap连接路由器后,通过我们自己的服务器处理,手机通过4G网络也能够控制智能硬件了。假设您的应用需要连接到家庭智能灯泡,用户可以通过应用控制灯泡的亮度和颜色。:智能设备成功连接到 Wi-Fi 网络后,用户的设备也会自动断开与智能设备创建的热点的连接,切换到指定的 Wi-Fi 网络上。

2024-03-19 08:00:00 969

原创 Vue条件渲染

在Vue.js中,条件渲染是根据特定条件决定是否渲染或显示特定的内容。

2024-03-18 09:45:00 435

原创 Vue列表渲染

在Vue.js中,列表渲染是一种常见的操作,用于动态地渲染数组或对象中的数据到页面上。Vue提供了v-for指令来实现列表渲染,让我们可以轻松地遍历数据并生成对应的DOM元素。

2024-03-18 09:00:00 360

原创 Vue生命周期

在开发过程中,可以根据不同的需求在这些生命周期钩子函数中添加自定义逻辑,实现更灵活的控制和交互。Vue生命周期的理解对于开发Vue.js应用程序非常重要,可以帮助我们更好地管理组件和数据的生命周期。在Vue.js中,组件实例有一个完整的生命周期,包括创建、挂载、更新和销毁等阶段。Vue生命周期钩子函数允许我们在组件不同阶段添加自定义逻辑。这些生命周期函数可以帮助我们更好地理解组件的生命周期流程,并在需要时执行相应的操作。在Vue.js中,生命周期函数是一系列钩子函数,用于在组件不同阶段执行特定逻辑。

2024-03-17 12:28:52 611

原创 Vue动态绑定Class与Style

这样可以根据数据的变化来动态改变元素的样式,实现更灵活的样式控制。通过数组语法,可以根据多个条件的组合来决定元素应该添加哪些类,实现更复杂的样式控制。通过数组语法,可以根据多个条件的组合来决定元素应该具有哪些样式,实现更灵活的样式控制。这样,我们可以根据多个条件的组合来动态控制元素的样式,使页面更具交互性和灵活性。数组语法,可以实现更复杂的样式控制,根据多个条件的组合来动态改变元素的样式,满足不同的需求。通过数组语法,可以根据多个条件的组合来动态控制元素的样式,实现更灵活的样式控制。

2024-03-17 12:22:11 995

原创 iOS高级理论:CocoaAsyncSocket 介绍与使用

CocoaAsyncSocket为Mac和iOS提供了易于使用和功能强大的异步套接字库,主要包含两个类:GCDAsyncSocket:用GCD搭建的基于TCP/IP协议的socket网络库GCDAsyncUdpSocket:用GCD搭建的基于UDP/IP协议的socket网络库.本文主要介绍 GCDAsyncSocket的使用,他是一个TCP库,建在Grand Central Dispatch上面的。TCP是面向连接的,面向流的,提供高可靠性服务。

2024-02-29 22:49:36 1217

原创 iOS高级理论:UDP的介绍和使用

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,像一个多孔插座。

2024-02-29 22:48:33 1101

原创 iOS高级理论:内存管理

在 iOS 应用开发中,内存管理是非常重要的一个方面,合理管理内存可以避免内存泄漏和内存过度消耗,提高应用的性能和稳定性。iOS 中的内存管理主要是通过引用计数(reference counting)和自动释放池(autorelease pool)来实现的。

2024-02-28 09:30:00 1141

原创 iOS高级理论:RunLoop

在 iOS 开发中,Runloop(运行循环)是一个重要的概念,它负责处理事件和消息,保证程序在不间断地处理事件的同时保持活动状态。Runloop 是一个事件处理的机制,负责管理事件源和定时器,确保应用程序在不同状态下能够正常运行。RunLoop 实际上是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如说触摸事件、UI刷新事件、定时器事件、Selector事件),从而保持程序的持续运行。RunLoop 在没有事件处理的时候,会使线程进入睡眠模式,从而节省 CPU 资源,提高程序性能。

2024-02-28 09:00:00 858

原创 iOS高级理论:KVO与KVC

总的来说,KVC 和 KVO 是 Objective-C 中的两个强大特性,可以帮助我们简化代码、实现数据观察和实现灵活的数据访问。KVC 是一种通过键(Key)来访问对象的属性值的机制,可以绕过访问器方法(getter 和 setter)直接访问对象的属性。在一个简单的用户信息展示页面上,我们可以使用 KVC 实现数据绑定,将用户对象的属性与界面上的标签进行关联。在一个多页面的应用中,当某个对象的属性值发生变化时,我们可以使用 KVO 来实现数据的同步更新。方法,可以实现自定义的数据转换逻辑。

2024-02-27 14:00:00 2013

原创 iOS高级理论:面对对象

OC中是这么做的,如果想让一个方法不被外界访问的话,只需要在.m文件中实现这个方法,不要在头文件中进行定义,说白了就是:该方法有实现,没定义,这样外界在导入头文件的时候,是没有这个方法的,但是这个方法我们可以在自己的.m文件中进行使用。但是这里要注意的是:OC中的方法是没有修饰符的概念的,这个和Java有很大的区别,一般都是公开访问的,即public的,但是我们怎么做到让OC中的一个方法不能被外界访问呢?继承是类中的一个重要的特性,他的出现使得我们没必要别写重复的代码,可重用性很高。

2024-02-27 09:49:33 823

原创 iOS高级理论:分类和扩展

在 iOS 开发中,分类(Category)和扩展(Extension)是两种常用的机制,用于对现有类进行扩展和增强。它们可以为现有类添加新的方法、属性或协议,而无需修改原始类的源代码。

2024-02-27 09:48:50 1149

原创 iOS高级理论:Runtime应用

创建一个UIViewController的分类,重写自定义的ViewDidAppear方法,并在其+load方法中实现ViewDidAppear方法的交换。(2) 开发中常需要在不改变某个类的前提下为其添加一个新的属性,尤其是为系统的类添加新的属性,这个时候就可以利用Runtime的关联对象(Associated Objects)来为分类添加新的属性了。通过使用 Runtime 遍历类的属性,我们可以实现一个通用的归档和解档方法,而无需手动编写大量的归档代码。方法则对归档的数据进行解档,恢复对象的状态。

2024-02-26 09:37:52 888

原创 iOS高级理论:Runtime介绍和使用

iOS Runtime 是 Objective-C 的运行时系统,它是一个动态的库,提供了一系列 C 函数和数据结构,用于实现 Objective-C 的动态特性。在 iOS 开发中,Runtime 提供了许多强大的功能,例如动态添加类和方法、消息转发、关联对象等。

2024-02-26 09:37:07 713

原创 iOS高级理论:Block的应用

Block 是 Objective-C 和 Swift 中的一种语言特性,可以用来封装一段代码并在需要时执行。

2024-02-25 17:37:14 757

原创 iOS高级理论: Block介绍和使用

在 iOS 开发中,Block 是一种闭包(Closure)的概念,可以将一段代码块作为一个对象进行传递和存储,类似于函数指针。Block 可以捕获其定义时所在范围内的变量,并在需要的时候执行这段代码块。Block 的使用可以方便地实现回调、异步操作、事件处理等功能。

2024-02-25 17:36:37 1308

原创 iOS高级理论:常用的架构模式

在 iOS 开发中,常用的架构模式有以下几种:MVC(Model-View-Controller)模式:是 iOS 开发中最常见的架构模式。在 MVC 模式中,Model 负责数据处理和业务逻辑,View 负责界面展示,Controller 负责协调 Model 和 View 之间的交互。虽然 MVC 模式简单易懂,但在复杂项目中可能导致 Controller 过于臃肿,难以维护。

2024-02-24 17:30:22 1271

原创 iOS高级理论:多线程专题 - (2) GCD信号量的应

这样做的目的是保证在请求结果没有返回之前,一直让线程等待在那里,这样一个线程的任务一直在等待,就不会算作完成,notify的内容也就不会执行了,直到每个请求的结果都返回了,线程任务才能够结束,这时候notify也才能够执行。对计算机了解的都会知道信号量的作用,当我们多个线程要访问同一个资源的时候,往往会设置一个信号量,当信号量大于0的时候,新的线程可以去操作这个资源,操作时信号量-1,操作完后信号量+1,当信号量等于0的时候,必须等待,所以通过控制信号量,我们可以控制能够同时进行的并发数。

2024-02-24 10:51:35 1148

原创 iOS面试:4.多线程GCD

进程是指在系统中正在运行的一个应用程序。对于电脑而已,你打开一个软件,就相当于开启了一个进程。对于手机而已,你打开了一个APP,就相当于开启了一个进程。线程是进程的基本执行单位。一个进程中至少会有一条线程,当然也可能会有多条线程。比如你使用QQ音乐听歌,系统会创建一条线程去播放音乐。使用QQ音乐下载歌曲,系统会创建一条线程去下载歌曲。这两个操作是可以同时进行的,也就说一个进程中可以同时运行多条线程。

2024-02-23 17:27:50 1699

原创 iOS面试:3.Object-C相关

需要注意的是,Objective-C 的编译过程中还涉及到 Objective-C 运行时库的支持,因为 Objective-C 是一种动态语言,它需要在运行时进行方法调度、消息传递等操作,这些都依赖于 Objective-C 运行时库的支持。在 Objective-C 中,可以将一个 B 类型的对象赋值给 A 类型,因为 Objective-C 是一种动态类型的语言,它使用的是指针来引用对象,而不是直接操作对象本身。在动态类型语言中,变量的类型是在运行时确定的,而不是在编译时确定的。

2024-02-23 17:27:03 981

原创 iOS面试:2.操作系统

虚拟内存是计算机系统中的一种技术,它允许操作系统将部分硬盘空间用作临时的内存扩展,以满足程序运行时的内存需求。虚拟内存的主要作用是扩展计算机的内存空间,使得系统能够同时运行更多的程序或处理更大的数据集,从而提高系统的性能和稳定性。内存扩展虚拟内存允许操作系统将硬盘空间用作临时的内存扩展,当物理内存不足时,系统可以将部分不常用的内存数据暂时存储到硬盘上,从而释放物理内存供其他程序使用。多任务处理虚拟内存使得系统能够同时运行多个程序,每个程序都可以独立地占用一定的虚拟内存空间,而不会相互干扰。

2024-02-21 20:44:36 834

原创 iOS面试:1.计算机网络

HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种用于传输超文本数据(如 HTML 文档、图片、视频等)的应用层协议,是互联网上应用最为广泛的协议之一。HTTP协议建立在TCP协议之上,通过在客户端和服务器之间传输数据来实现通信。无连接性:HTTP 是一种无连接的协议,即每个请求和响应之间是相互独立的,服务器在处理完一个请求后会关闭连接。这种无连接性可以减少服务器的负担,但也会增加建立和关闭连接的开销。无状态性。

2024-02-21 20:43:53 1257

substrate.h

用Theos 编写代码的时候,发现’MSHookIvar’这个编译不通过,找了一圈不知道是什么原因,后面发现是少了一个substrate.h 文件。下载这个文件,然后复制到你工程目录下面。

2017-05-23

ViewPagerFragmentTab

主要介绍ViewPager+Fragment的方式实现Tab的效果,这种方式点击tab上的按钮可以切换界面,左右滑动也可以切换界面。

2017-03-31

FragmentTab

主要介绍用Fragment的方式实现Tab的效果。

2017-03-31

ViewPagerTab

安卓tabbar,用viewpager的方式实现tabbar的切换。

2017-03-30

iOS Tabbar上添加按钮

iOS tabbar中间添加按钮

2017-03-07

DragBigger

类似QQ空间下拉图片变大的效果

2016-11-03

ThirdpartyLogin(QQ微信新浪微博登录)

第三方登录(QQ微信新浪微博登录)

2016-11-02

ThirdpartyLogin(QQ微信登录)

微信登录,QQ登录

2016-11-02

ThirdpartyLogin

第三方登录-QQ登录

2016-11-02

环信SDK3.2 Chat 文件

环信SDK3.2 Chat 文件

2016-10-31

iOS 图片轮播

iOS图片轮播、点击事件,显示标题

2016-10-26

ios UICollectionView

ios UICollectionView的使用

2016-08-16

Swift UIAlterViewController

Swift UIAlterViewController

2016-04-14

iOS 搜索框

UISearchController 搜索框,适用于iOS8.0以后的版本。

2016-03-30

用plist保存账号密码

用plist保存账号密码

2016-03-28

自定义PickerView

自定义一个pickerView,解决如下问题: 1、添加“确定”和“取消”按钮; 2、增加向上弹出和向下消失动画; 3、选中某行后,触发一个事件;

2016-02-29

自定义DatePicker

封装了一个日期选择器,解决两个问题: 1、点击textField,键盘弹出和日期选择器弹出的逻辑处理; 2、同一个界面需要多次用到日期选择器时,判断点击的textField;

2016-01-18

环信3.0单聊集成chat文件

环信3.0单聊集成chat文件,已经将无关代码注释掉,可直接使用。

2015-12-13

环信单聊集成chat文件

环信单聊集成chat文件,把不需要的代码已经注释好,可直接使用。

2015-12-13

环信3.0UI集成文件

环信3.0集成需要添加的UI文件,另外自行导入环信的SDK

2015-12-13

环信3.0需添加的文件

环信SDK3.0集成需要添加的一些文件,全部都整合在一起了,把不需要的代码也注释好了。下载后,拖入你的工程可以直接用。

2015-12-11

iOS 抽奖转盘S

绘制直线、三角形、圆弧、文字、图片 等。

2015-11-27

iOS 抽奖转盘

用iOS做的一个抽奖转盘的demo,可以用于抽奖。

2015-11-20

iOS 网络类型

用于判断设备当前的网络类型,wifi、3G、4G等。

2015-10-19

iOS支付宝SDK

iOS支付宝SDK,包含开发文档和演示的DEMO

2015-10-10

iOS 广告轮播

基本的需求点: 1. 支持循环滚动; 2. 支持加定时器,自动滚动; 3. 支持自定义是否要显示标题; 4. 支持自定义pageControl的位置(左、中、右三种方式); 5. 支持自定义标题的位置(左、中、右三种方式); 6. 支付广告轮播图片的点击,可以点击跳转到你所指定的界面; 7.只有一张图片时,自动隐藏pageControl;

2015-09-22

Segment带滑动条效果

Segment带滑动条效果

2015-08-11

iOS下载图片显示进度

iOS下载图片,并且显示下载的实时进度,下载完成之后显示图片。

2015-07-28

单例反向传值

iOS传值,iOS单例反向传值,将B界面的值传到A界面。

2015-07-20

block反向传值

iOS传值,将B界面的值传到A界面

2015-07-20

iOS Notification反向传值

iOS传值,用Notifaction反向传值,将B界面的值传到A界面。

2015-07-17

iOS Notification正向传值

iOS传值,用通知Notifaction正向传值。

2015-07-17

实现上图标下文字,左图标右文字,右文字左图标设置的按钮

在项目开发中,经常需要用到按钮,系统默认的按钮是图标在左边,标题在右边。但往往实际情况是多变的,有时候图标在右边、有时候图标在上面,这个时候系统的按钮往往无法满足需求,所以我们需要自定义按钮来满足需求的开发。下面提供两种方法来实现按钮图标和文字自定按钮。

2022-11-29

iOS列表自动刷新(结合websocket实现,简单实用)

要实现列表做到服务器有数据更新时去主动请求接口,没有数据更新时则不请求接口,关键是要知道服务器什么时候数据更新了,需要服务器主动告知客户端某个列表的接口有数据更新了,当用户切换到此列表时,需要客户端主动去请求接口,获取最新的数据。要实现这一功能,采用websocket是最合适的。websocket能保持服务器和客户端的通信,当服务器有数据更新了,通过websocket告知用户需要刷新列表了。

2022-11-23

MJRefresh无感刷新

MJRefresh无感刷新 项目开发中用了MJRefres 刷新控件,每次上拉的时候都有个菊花转,需要下拉一下才能看到下一页的数据。产品提出需求,希望列表往下拉能直接出现下一页的数据,不需要出现加载的动画和等待时间。于是着手看了一下MJRefresh的源码,发现其提供了无感刷新(自动刷新)的方法。

2022-07-11

MJRefresh自定义动画

MJRefresh自定义动画 项目开发中用了MJRefres 刷新控件,但是MJRefresh默认的加载样式感觉比较丑,产品觉得需要换个样式,弄的简洁一点。于是着手看了一下MJRefresh的源码,发现其提供了修改样式的方法。

2022-07-11

鸿蒙网络请求Demo.zip

鸿蒙网络请求

2021-08-04

libstdc.zip

Xcode缺少libstdc++的解决方案

2021-05-07

SourceTree

完美破解版,找了很久才找到,亲测可用。 完美破解版,找了很久才找到,亲测可用。 完美破解版,找了很久才找到,亲测可用。

2017-09-09

iOS逆向非群主@所有人

微信中只有群主才有@所有人的权限,下面用iOS逆向实现一下非群主@所有人的功能

2017-05-17

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除