自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(262)
  • 资源 (21)
  • 收藏
  • 关注

原创 鸿蒙开发之ArkTs开发布局之层叠布局(Stack)和弹性布局(Flex)

层叠布局(StackLayout)用于在屏幕上预留一块区域来显示组件中的元素,提供元素可以重叠的布局。层叠布局通过容器组件实现位置的固定定位与层叠,容器中的子元素(子组件)依次入栈,后一个子元素覆盖前一个子元素,子元素可以叠加,也可以设置位置。层叠布局具有较强的页面层叠、位置定位能力,其使用场景有广告、卡片层叠效果等。Stack组件可以实现容器堆叠,子组件按照顺序依次入栈,后一个子组件覆盖前一个子组件。Stack作为容器,容器内的子元素(子组件)的顺序为Item1->Item2->Item3接口。

2024-04-03 16:59:15 612

原创 鸿蒙开发之ArkTs开发布局之线性布局(Row/Column)

组件按照布局的要求依次排列,构成应用的页面。在声明式UI中,所有的页面都是由自定义组件构成,开发者可以根据自己的需求,选择合适的布局进行页面开发。布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。

2024-03-29 16:12:13 682

原创 鸿蒙开发之ArkUI组件常用组件-CustomDialog/Video

使用@CustomDialog装饰器装饰自定义弹窗@CustomDialog装饰器用于装饰自定义弹窗,此装饰器内进行自定义内容build() {Column() {Text("这是弹窗")Text("这是自定义弹窗的内容。。。。")创建构造器,与装饰器呼应相连})点击与onClick事件绑定的组件使弹窗弹出Row() {Button('显示弹窗')})

2024-03-28 18:42:45 997

原创 鸿蒙开发之ArkUI组件常用组件-Button/Radio/Slider

checked属性可以设置单选框的状态,状态分别为false和true时,设置为true时表示单选框被选中。Button是按钮组件,通常用于响应用户的点击操作,其类型包括胶囊按钮、圆形按钮、普通按钮。该接口用于创建不包含子组件的按钮,其中label用来设置按钮文字,type用于设置Button类型,stateEffect属性设置Button是否开启点击效果。Button有三种可选类型,分别为Capsule(胶囊类型,默认类型)、Circle(圆形按钮)和Normal(普通按钮),通过type进行设置。

2024-03-28 10:43:00 706

原创 鸿蒙开发之ArkUI组件常用组件文本输入

TextInput、TextArea是输入框组件,通常用于响应用户的输入操作,比如评论区的输入、聊天框的输入、表格的输入等,也可以结合其它组件构建功能页面,例如登录注册页面。TextInput为单行输入框、TextArea为多行输入框。

2024-03-27 21:21:31 553

原创 鸿蒙开发之ArkUI组件常用组件图片和文本

Text('左对齐')Text('中间对齐')Text('右对齐')TextAlign是枚举,有Start、Center、End。

2024-03-27 12:50:18 893

原创 鸿蒙开发之了解ArkTS

鸿蒙开发者官网 : https://developer.huawei.com/consumer/cn/开发鸿蒙要用的软件是 DevEco StudioArkTS建立在JS和TS的基础之上,扩展了声明式UI开发范式和状态管理,提供更简洁和自然的开发方式。ArkTS引入了渲染引擎的增强,包括平台无关的自绘制机制、声明式UI后端设计、动态布局等,以提高性能体验。进一步的优化包括代码预编译、高效FFI-Foreign Function Interface、引擎极小化等。ArkTS还构建了跨OS平台的基础设施,以

2024-03-26 19:00:43 662

原创 nodejs web服务器 之初始化路由

每当一个请求到达服务器之后,需要先经过路由的匹配,只有匹配成功之后,才会调用对应的处理函数。在匹配时,会按照顺序进行匹配,请求类型和请求的URL同时匹配成功,返回对应的数据。在这个文件里我写了一个GET和一个POST,对应的路径分别是/api/user/info 和 /api/user/login。这样就简单的做好了路由的demo,当然在实际的项目中不会这么简单,这里只是做一下模拟,后面会涉及到数据库的增删改查等。2、测试POST,用户登录的接口,在apifox上测试。并返回的对应的数据对象。

2024-03-07 15:52:02 370

原创 nodejs web服务器 -- 搭建开发环境

2、创建一个js文件--- appjs 用来处理请求逻辑, 一个文件夹bin,里面创建一个js文件,我这里命名base.js作为入口。author --- 名字+邮箱 , license --- 授权 , main -- 入口文件。如上图所示,version -- 版本 ,description -- 描述, keywords --- 关键词。其中-y的含义是yes的意思,在init的时候省去了敲回车的步骤,如此就生成了默认的package.json文件。这样,我们就完成了开发环境的搭建。

2024-03-07 12:56:15 549

原创 Nodejs web服务器之GET、POST请求初次体验

运行node,并在浏览器上访问 http://localhost:5005/index.js?注意:有时运行 node index.js 是提示端口5005被占用了。1.DNS解析域名,找到ip地址,建立TCP连接,发起http请求。3.客户端接收到返回的数据,处理数据(比如渲染页面)执行 执行 kill 67740 杀死占用的进程即可。2.服务器接收到http请求,进行处理,返回数据。查看哪些进程占用了5005端口。这样就可以处理客户端的POST请求了。

2024-03-06 18:37:29 390

原创 iOS 使用LFliveKit和IJKPlayer实现直播

手机和mac要连接同一个WiFi,并配置代理,设置ip和端口。或者 系统设置-> 网络 -> wifi -> 详细信息。首先搭建nginx+rtmp本地服务器。这样就简单实现了推流和拉流的功能。终端输入 ifconfig。

2024-03-05 20:05:02 728

原创 在Mac上安装nginx+rtmp 本地服务器

Users/mengxianjin/Downloads/test.mp4 测试视频的绝对路径。rtmp://localhost:1935/rtmplive/test 是VCL上的rtmp地址。listen 监听的端口号, rtmp协议的默认端口号是1935。application 访问的应用路径是 rtmplive。2、重启 nginx, 我当前的版本是 1.25.4。这是在VCL上就可以看到推流的视频了。record off;至此,本地的服务器基本安装完成。nginx 再次开启。

2024-03-05 12:36:26 672 1

原创 Masonry 源码简单解析

Masonry是一个轻量级的用于自动布局的框架,是对系统的自动布局约束的一个封装。Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。上面是Masonry的类图,从类图中我们来整体的分析Masonry框架的结构。然后再由整体到部分逐渐的细化,窥探其内部的实现细节。masonry框架的类结构根据上面的类图,我们分别看一下框架里面各个类。1、UIView的分类 - V.

2021-07-14 17:28:11 349 1

原创 Runloop线程常驻

在iOS开发过程中,有时一些花费时间比较长的操作阻塞主线程,导致界面卡顿,那么我们就会创建一个子线程,然后把这些花费时间比较长的操作放在子线程中来处理。可是当子线程中的任务执行完毕后,子线程就会被销毁掉。如果程序中,需要经常在子线程中执行任务,频繁的创建和销毁线程,会造成资源的浪费。这时候我们就可以使用RunLoop来让该线程长时间存活而不被销毁。来个案例,在睡眠时,通过硬件获取数据信息(比如心电信息),开始睡眠时,创建runloop,使得子线程常驻,用于写数据到文件睡眠结束后,退出runl.

2021-07-14 14:53:49 318

原创 源码分析之AFNetworking④UIkit+AFNetworking

如果需要使用AFNetworking的UIKit扩展时可直接在prefix.pch文件中引入,或者在工程的相关文件中引入。1、AFAutoPurgingImageCache :用于缓存图片的类,通过identifier来添加和搜索UIImage协议中添加图片:- (void)addImage:(UIImage*)image withIdentifier:(NSString *)identifier;协议中删除图片- (BOOL)removeImageWithIdentifier:(NSStri.

2021-07-14 09:33:16 345 1

原创 源码分析之AFNetworking③AFSecurityPolicy和AFURLRequestSerialization

首先看一下AFSecurityPolicy的属性:1、https验证模式,默认无,还有证书匹配和公钥匹配@property (readonly, nonatomic, assign) AFSSLPinningMode SSLPinningMode;typedef NS_ENUM(NSUInteger, AFSSLPinningMode) {AFSSLPinningModeNone,AFSSLPinningModePublicKey,AFSSLPinningModeCertificate,};

2021-07-13 17:29:28 124

原创 源码分析之AFNetworking ②AFNetworkReachabilityManager

AFNetworkReachabilityManager对象用于监听设备当前连接网络的状态。AFNetworkReachabilityManager提供了4种创建方法:(instancetype)sharedManager; //创建单例(instancetype)manager;//创建实例对象(instancetype)managerForDomain:(NSString *)domain;//根据地址名创建实例对象(instancetype)managerForAddress

2021-07-13 17:16:30 233

原创 源码分析之AFNetworking ①AFURLSessionManager与AFHTTPSessionManager

首先查看afn的结构,如下:可以看到AF分为如下5个功能模块: 网络通信模块(最核心)(AFURLSessionManager、AFHTTPSessionManager) 网络状态监听模块(Reachability) 网络通信安全策略模块(Security) 网络通信信息序列化/反序列化模块(Serialization) 对于iOS UIkit库的拓展(UIKit)一、1.网络通信模块-AFURLSessionManager与AFHTTPSes

2021-07-13 16:35:36 690

原创 Flutter开发之网络请求

项目中展示的大部分数据都是来自服务器,我们需要向服务器请求数据,并且对他们进行解析展示。一. 网络请求的方式在Flutter中常见的网络请求方式有三种:HttpClient、http库、dio库。1、HttpClientHttpClient是dart自带的请求类,在io包中,实现了基本的网络请求相关的操作。网络调用通常遵循如下步骤:创建 client.构造 Uri.发起请求, 等待请求,同时您也可以配置请求headers、 body。关闭请求, 等待响应.解码响应的内容..

2021-05-13 17:29:46 688 1

原创 Flutter开发之滚动Widget

移动端数据量比较大时,我们都是通过列表来进行展示的,比如商品数据、聊天列表、通信录、朋友圈等。在Android中,我们可以使用ListView或RecyclerView来实现,在iOS中,我们可以通过UITableView来实现。在Flutter中,我们也有对应的列表Widget,就是ListView。一、ListView1.1、ListView的基本使用ListView可以沿一个方向(垂直或水平方向,默认是垂直方向)来排列其所有子Widget。一种最简单的使用方式是直接将所有需要排列的.

2021-05-11 17:34:39 540

原创 Flutter开发之JSON读取和解析

在开发中,我们经常会使用本地JSON或者从服务器请求数据后回去到JSON,拿到JSON后通常会将JSON转成Model对象来进行后续的操作,因为这样操作更加的方便,也更加的安全。所以学习JSON的相关操作以及读取JSON后如何转成Model对象对于Flutter开发也非常重要。1、 JSON资源配置JSON也属于一种资源,所以在使用之前需要先进行相关的配置。我们在之前使用Image组件时,用到了本地图片,本地图片必须在pubspec.yaml中进行配置:类似的json文件的配置如下:2、.

2021-05-10 17:49:49 2531 1

原创 flutter之布局Widget

为了实现界面内组件的各种排布方式,我们需要进行布局,和其他端不同的是,Flutter中因为万物皆Widget,所以布局也是使用Widget来完成的。Flutter中的布局组件非常多,有31个用于布局的组件。我们没必要一个个全部掌握,掌握最常用的,一些特殊的组件用到时去查文档即可。Flutter将布局组件分成了 单子布局组件(Single-child layout widgets) 和 多子布局组件(Multi-child layout widgets)一. 单子布局组件单子布局组件的含义是其只.

2021-05-08 17:40:03 188

原创 Flutter开发之基础Widget

一、文本Widget在Android中,我们使用TextView,iOS中我们使用UILabel来显示文本;Flutter中,我们使用Text组件控制文本如何展示;1.1普通文本展示在Flutter中,我们可以将文本的控制显示分成两类:控制文本布局的参数: 如文本对齐方式 textAlign、文本排版方向 textDirection,文本显示最大行数 maxLines、文本截断规则 overflow 等等,这些都是构造函数中的参数;控制文本样式的参数: 如字体名称 fontFamily、字体大

2021-05-06 18:06:42 213

原创 Flutter开发之Widget

在 Flutter 中,⼀切的显示都是 Widget 。Widget 是⼀切的基础,作为响应式的渲染,类似 MVVM 的实现机制。我们可以通过修改数据,再⽤ setState 设置数据,Flutter 会⾃动通过绑定的数据更新 Widget 。 所以你需要做的就是实现 Widget 界⾯,并且和数据绑定起来。Widget 分为 有状态 和 ⽆状态 两种,在 Flutter 中每个⻚⾯都是⼀帧,⽆状态就是保持在那⼀帧,⽽有状态的 Widget 当数据更新时,其实是绘制了新的 Widget,只是 State

2021-04-28 17:04:38 192

原创 Flutter开发之Hello World

一、创建项目flutter项目的创建有两种方式:通过命令行创建和开发工具创建。1、命令行创建:flutter create xxx注意:Flutter的名称不要包含特殊的字符,另外不可以使用驼峰标识2、开发工具创建,比如使用Android Studio创建,选择 Start a new Flutter project...

2021-04-28 15:56:18 383 1

原创 Dart的异步

一、Dart的异步模型1.1 Dart是单线程的1.1.1 程序中的耗时操作开发中的耗时操作:在开发中,我们经常会遇到一些耗时的操作需要完成,比如网络请求、文件读取等等;如果我们的主线程一直在等待这些耗时的操作完成,那么就会进程阻塞,无法响应其他事件,比如用户点击事件等如何处理耗时操作?针对如何处理耗时的操作,不同的语言有不同的处理方式。多线程,不如Java、C++,我们普遍的做法是开启一个新的线程,在新的线程中完成这些异步的操作,再通过线程间通信的方式,将拿到的数据传递给主线程。单

2021-04-19 17:24:12 923

原创 Dart学习之库的使用

在Dart中,我们可以导入一个库来使用它所提供的功能。库的使用可以使代码的重用性得到提高,并且可以更好的组合代码。Dart中任何一个dart文件都是一个库,即使你没有用关键字library声明。1、库的导入import语句用来导入一个库,后面跟一个字符串形式的URI来指定表示要引用的库,语法如下:import "库所在的uri";常见的库URI有三种不同的形式来自dart标准版,比如dart:io、dart:html、dart:math、dart:coreimport 'dart:io

2021-04-19 15:09:54 525 2

原创 Dart学习之泛型

泛型就是解决 类、 接口、 方法的复用性、以及对不特定数据类型的支持Dart中的泛型和其他语言差不多,但是Dart中的类型是可选的,使用泛型可以限定类型;使用泛型可以减少很多模板代码。1、为什么使用泛型?String getData1(String val){ return val; } int getData2(int val){ return val; }上面的两个方法分别返回String类型和int类型,我们可以不指定类型,getData(val){ retu

2021-04-19 10:54:36 412

原创 Dart学习之类和对象

Dart学习之类和对象Dart是一个面向对象的语言,面向对象中非常重要的概念就是类,类产生了对象。1、类的定义在Dart中,定义类用class关键字类通常有两个部分:成员(member)和方法(method)类定义的格式:class 类名{ 类型 成员名称l 返回值类型 方法名(参数){ 方法体 }}这里简单地举个例子,写一个Dog类class Dog{ String name; eat(){ print("$name 在吃东西!!别打扰它,小心咬你") }}

2021-04-19 00:55:52 468 2

原创 Dart学习之运算符和流程控制

Dart学习之运算符和流程控制一、运算符除法、整除、取模运算var num = 7;print(num / 3); // 除法操作, 结果2.3333..print(num ~/ 3); // 整除操作, 结果2;print(num % 3); // 取模操作, 结果1;2 ??= 赋值操作当变量为null时,使用后面的内容进行赋值;当变量有值时,使用自己原来的值。var name = null;name ??= "Tom";//name是null,??= 操作符将Tom赋值给na

2021-04-18 23:13:20 106

原创 Dart学习之基础

Dart学习之基础1、main函数main函数是dart 的入口,dart的入口函数是没有返回值的,传递给main的命令行参数是通过List完成的。字面上可以理解List是dart中集合类型;其中每一个String都表示传递给main的一个参数定义字符串的时候,可以使用单引号或双引号;每行语句必须使用分号结尾,很多语言并不需要分号,比如swift、jsmain(List<String> args) { print('Hello World');}2、定义变量2.1明确声明

2021-04-18 22:49:26 364

原创 iOS MOV转MP4

废话不多说,直接上转换代码+ (NSURL *)jjMovConvert2Mp4:(NSURL *)movUrl{    NSURL *mp4Url = nil;    AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:movUrl options:nil];    NSArray *compatiblePresets = [AVAssetExportSession exportPrese

2020-05-25 14:38:54 997

原创 iOS 使用UIBezierPath实现不等距曲线图

iOS,关于画线有很多很好的第三方,比如Charts、ECharts等等,但是我没有找到画不等距的,就自己简单的实现了一下。首先看,效果就是描点画线加动画,没有太难的。我自定义了一个LineChartView,和几个模型,具体demo下面会给链接给lineChartview暴露出了几个属性和方法,都有注释在controller里面进行初始化配置setChartView方法self.chartView.y_TextFont = [UIFont systemFontOfSize:14];

2020-05-25 13:49:28 247

原创 iOS提升开发效率-常用代码块

Xcode支持自定义代码段,当输入某个关键字就能提示出某个代码段。把常用的代码段保存下来,绝对对开发效率有很大的提高。一、添加代码块:在Xcode中右键,如下图选择‘Create Code Snippet’,即可创建新的代码块,比如我新建了一个定义block的代码块,保存之后,在需要的地方,输入qblo的时候就会有代码块提示,如下图选中回车后,我们需要的代码块就有了二、常用代码块1.strong/** <#描述#> */@prop..

2020-05-09 10:22:09 402

原创 iOS集成OpenCV,并实现图片马赛克

关于Open CVOpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是...

2020-02-23 03:21:50 1270

原创 运行react-native报错:xcrun: error: unable to find utility "instruments", not a developer tool or in PATH

在 终端执行如下命令sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/

2019-02-10 23:32:44 711

原创 ffmpeg音视频编解码的封装

//导入头文件//核心库#include "libavcodec/avcodec.h"//封装格式处理库#include "libavformat/avformat.h"//工具库#include "libavutil/imgutils.h"//视频像素数据格式库#include "libswscale/swscale.h"#include "libswresample/swresample.h"...

2018-03-30 00:10:14 2377 1

原创 FFmpeg的基础知识

第一点:一个视频播放流程?  视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步                       通常看到视频格式:mp4、mov、flv、wmv等等…              称之为:封装格式       第二点:视频播放器        ...

2018-03-29 22:48:55 1059

原创 ReactiveCocoa的使用

### 1.ReactiveCocoa常见操作方法介绍。* 1.1 ReactiveCocoa操作须知    *   所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,因此只要继承RACStream就有了操作处理方法。* 1.2 ReactiveCocoa操作思想    *   运用的是Hook(钩子)思想,Hook是一种用于改变API(应用程序...

2018-03-28 10:40:24 571

原创 Shell脚本下载和编译ffmpeg

1、首先编写Shell脚本下载ffmpeg,命名为ffmpeg-download.sh:#!/bin/bash#库名称source="ffmpeg-3.4"#下载这个库if [ ! -r $source ]then#没有下载,那么我需要执行下载操作 echo "没有FFmpeg库,我们需要下载….."#下载:怎么下载?#"curl"命令表示:它可以通过Http\ftp等等这...

2018-03-23 00:37:16 921

nodejs 做本地web服务器

nodejs 做本地web服务器

2024-03-07

LineChartDemo.zip

iOS 使用UIBezierPath实现不等距曲线图,支持自定义X轴、Y轴的文案和颜色等,有动画效果

2020-05-25

iOS 开发Xcode代码块.zip

下载完之后,解压打开readMe.txt文本,按照上面的操作或者按下面的说明: 首先终端执行: cd ~/Library/Developer/Xcode/UserData/ 将CodeSnippets文件夹拷贝到这个目录下 重启Xcode即可看到自定义的代码块

2020-05-09

ios 二维码

ios 二维码,原生代码实现二维码的生成,图片二维码的读取以及扫描二维码

2017-12-21

python入门

python入门教材,全书共145页,适合小白,python的入门级编程教材,建议一周到两周时间看完。让小白对编程产生兴趣。

2017-10-21

人脸识别iOS

ping++框架实现人脸识别

2017-08-15

iOS人脸识别

iOS人脸识别,身份证识别

2017-08-14

UIBezierPath

iOS贝塞尔曲线的演示,包括多边形,矩形,圆形和椭圆形以及二次贝塞尔曲线和三次贝塞尔曲线

2017-04-20

html -- responsive.js

html -- responsive.js

2017-03-10

The Swift Programming Language中文完整版(CocoaChina精校).pdf

The Swift Programming Language中文完整版(CocoaChina精校).pdf

2016-08-08

iOS和JS的交互之在代理方法拦截Url,识别判断

在代理方法拦截Url,识别判断,从而完成iOS和JS的交互

2016-08-03

UITUITableViewCell 的左滑动删除和cell按钮的点击事件

UITUITableViewCell 的左滑动删除和cell按钮的点击事件

2016-04-15

UITableViewCell高度的自适应

UITableViewCell高度的自适应

2016-03-24

日期选择器

两种方法实现日期选择:UIPickerView和UIDatePicker

2016-03-15

iOS开发用到的一些书籍

iOS开发用到的一些书籍

2016-03-09

UICollectionView的使用

通过代码,了解UICollectionView的使用

2016-03-09

iOS 原生代码实现视频播放

iOS 原生代码实现视频播放

2016-03-09

微信支付的demo

微信支付的demo ,另外还要注意:在类实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。

2016-03-09

iOS获取用户设备当前的IP地址

iOS获取用户设备当前的IP地址

2016-03-09

iOS 文件断点下载

用苹果原生代码实现文件的断点下载,利用NSURLSession实现大文件(以视频文件为例)和小文件(图片文件为例)的断点下载

2016-03-01

IBeacon的demo实例

IBeacon的demo实例 ,让你更好的了解和学习iBeacon技术

2015-12-17

空空如也

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

TA关注的人

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