- 博客(136)
- 资源 (16)
- 收藏
- 关注
原创 iOS_Xcode_LLDB调试常用命令
需要设置:Debug → Debug workflow → Always Show Disassembly。官方教程:https://lldb.llvm.org/use/tutorial.html。,会用表达式解析器运行该值的文本,将值替换为该文本。官网:https://lldb.llvm.org/
2024-01-28 20:21:22 540
原创 iOS_Swift 实现UITextView,显示前n行,点击显示“更多”,再点击“收起”效果
仅一个类Class实现:显示前n行文案,点击展开,再点击收起效果。继承自UITextView,运用NSMutableAttributedString实现
2020-12-07 14:12:42 1715 2
原创 iOS_音频波形图Time、Wave实现,滑动设置播放进度
实现如下:需要的数据源:1、demo.mp3:音频文件2、samplePoints 数组:每秒音量(0-1)数组,根据音频pcm采样数据文件计算出来的(遍历:每秒取一点,并记录下最大值;最后按取值为0至1,进行缩放。计算完的数存如数组)(这里不过多描述计算音量过程,以后有时间补...)接下来是UI实现思路:一、滑动视图:用了两个TableView,上面的显示时间和刻度,下面的显示音量Lines。为了让时间显示在cell中间,所以设置结构如下图:time table
2020-06-10 14:39:44 2767
原创 iOS_Swift文件夹和文件操作
首先获取app文件夹:(以下例子都在doucment文件夹下操作)let manager = FileManager.defaultlet urls: [URL] = manager.urls(for: .documentDirectory, in: .userDomainMask)// .libraryDirectory、.cachesDirectory ...self.docume...
2020-01-09 17:58:48 2019 1
原创 商品管理App隐私政策
商品管理 隐私政策欢迎您访问我们的产品。商品管理 (包括App等产品提供的服务,以下简称“产品和服务”)是由 miki (以下简称“我们”)开发并运营的。确保用户的数据安全和隐私保护是我们的首要任务, 本隐私政策载明了您访问和使用我们的产品和服务时所收集的数据及其处理方式。请您在继续使用我们的产品前务必认真仔细阅读并确认充分理解本隐私政策全部规则和要点, 一旦您选择使用,即视为您同意本隐私政策的全部内容,同意我们按其收集和使用您的相关信息。
2024-02-03 15:32:52 276
原创 iOS_获取 UIScrollView 是否处于滑动中 和 滑动方向
detect UIScrollView whether in scrolling and scrolling direction
2023-11-19 17:00:36 971
原创 iOS_Crash 二:报告的组成结构
二进制图像,崩溃报告的二进制图片部分列出了终止时进程中加载的所有代码(如:应用程序可执行文件和系统框架)。之后的每一行代表回溯中的一个堆栈帧,堆栈帧的每一列都包含崩溃时执行的代码信息。第一列:堆栈帧号,堆栈帧按调用顺序排列,其中0帧是执行停止时正在执行的函数,1帧则是调用0帧的函数,以此类推。操作系统有时会包含额外的诊断信息,这些信息使用多种格式,具体取决于崩溃的原因,并不是每个崩溃报告都包含。第三列:正在执行的机器指令的地址。第四列:在完全符号化的崩溃报告中,正在执行的函数名称。
2023-08-21 08:00:00 379
原创 iOS_Error(五)
新增一个值 ${SRCROOT} - Recursive (在根目录递归查找)pod install 时某些库安装失败了,重新 pod install 一下。平时遇到的一些error+解决办法,记录 for 再次遇到。退出Xcode,清理DerivedData,后打开重试。“XCBBuildService”意外退出。库限制的iOS版本太低了,改高点就好了。
2023-06-06 23:01:18 3000 1
原创 iOS_performSelector:withObject:afterDelay:
使用 performSelector 带有 afterDelay 方法时需要注意
2023-03-19 16:59:29 449
原创 iOS_泛型 Generics __covariant(协变) __contravariant(逆变)
泛型可以让你使用自定义的类型来编写灵活的、可重用的函数和类型,可以避免重复,以清晰、抽象的方式表达其意图。
2022-07-17 21:52:55 797
原创 iOS_预编译(宏)#if #ifdef #ifndef #elif #else #endif
ANSI C标准(是美国国家标准协会(ANSI)对C语言)规定可以在C源程序中加入一些“预处理命令”,
2022-06-14 21:46:38 1921
原创 iOS_ReactiveObjC_Observe 观察 基本类型变量
ReactiveObjC监听BOOL因为ReactiveObjC只能监听NSObject类型的数据,所以一般为了能监听BOOL值的类型,我们会用NSNumber来实现BOOL。这里介绍一种在不改变BOOL的情况下,通过封装实现ReactiveObjC监听BOOL值类型。例:一个Person对象,会在某一时刻更改它的hidden属性:@interface MOPerson : NSObject@property (nonatomic, assign) BOOL hidden;- (void)u
2022-05-29 17:58:01 420
原创 iOS_追光动效(色值渐变)
追光动效实现效果如下:实现:如下图,红框为一个UIVIew,CAGradientLayer的startPoint和endPoint的取值是(0,0)到(1,1)。将红色和蓝色放入CAGradientLayer的colors数组,再将startPoint和endPoint的取值是(0,0)到(1,1),就可以得到从 左上角 由 红色 到 右下角 的 蓝色 的渐变效果:CGRect imageFrame = CGRectMake(20, 150, 300, 188);CGFloat width
2021-10-31 15:32:07 528
原创 iOS_Objective-C编程规范
Objective-C编程规范文章目录Objective-C编程规范1、extern用:FOUNDATION_EXPORT2、更新布局2、更新subView布局3、synthesize/dynamic4、判断是否实现了指定协议的方法5、IOC:`inversion of control`控制反转1 格式1.1 【必须】代码组织1.2 【推荐】换行1.3 【推荐】函数长度2 命名2.1 【必须】类和协议名称2.2 【必须】分类2.3 【必须】文件名2.4 【推荐】缩略词和首字母缩写词2.5 【必须】宏定义
2021-10-21 15:40:32 1368 1
原创 iOS_NSTextAttachment图文混排,图片和文字对齐
NSTextAttachment需求:图文混排初始实现的代码如下:let label = UILabel()label.frame = CGRect(x: 50.0, y: 150.0, width: 200.0, height: 100)label.backgroundColor = .purplelabel.numberOfLines = 0self.view.addSubview(label)let attributedStr = NSMutableAttributedString(
2021-10-20 21:23:02 3547
原创 iOS_Terminal、Cocoapods 常用命令
文章目录一、基础命令二、快捷键三、`gem`相关:1、管理`gem`:2、配置`gem`:3、`gem`使用四、操作`CocoaPods`:1、安装或更新:2、查看版本:3、降低版本五、使用`CocoaPods`:1、了解资源配置文件:2、导入库3、安装库:4、更新5、查看库安装版本:6、列出Podfile.lock中所有库的最新版本Terminal常用指令作为一个开发,多多少少都得用到Terminal,小白在此记录一些常用指令,以后遇到新的会补充,以便查用~一、基础命令ls # 显示当前
2021-09-18 13:08:26 904
原创 iOS_单元测试四之OCHamcrest 使用
文章目录OCHamcrest一、Object二、Number三、String四、Logical五、Collection六、DecoratorOCHamcrestOCHamcrest是OC的断言框架,提供更友好的断言接口。OCHamcrest的断言方法都是以assertThat为前缀的。一、ObjectMOStudent *stu = [[MOStudent alloc] init];stu.name = @"momo";MOStudent *stu2 = nil;assertThat(st
2021-08-13 17:33:05 238
原创 iOS_Swift_Scanner使用_字符串截取
文章目录Scanner一、初始化二、属性三、方法四、使用举例ScannerScanner继承自NSObject, 遵循NSCopying协议。是一个用于扫描指定字符串的抽象类初始化时指定需要扫描的String,可以设置需要跳过的字符集合调用scan方法,scanner会按要求扫描出需要提取的字符串一、初始化let scanner: Scanner = Scanner(string: "http://www.baidu.com?type=value&age=18")二、属性// 初始
2021-08-05 20:55:09 640
原创 iOS_用Masonry实现 UIView Animation 简单动画
用Masonry实现 UIView Animation 简单动画其实只需要在mas_updateConstraints:设置完需要更新的layout之后调用父视图的layoutIfNeeded方法就行。@interface MOViewTestViewController ()@property (nonatomic, strong) UIView *moView;@end@implementation MOViewTestViewController { BOOL _isOn;}
2021-07-28 12:19:12 1113
原创 iOS_UIFont的Attributes解析
Font attributes最近做了一个需求,在AttributeString中插入图片,然后需要图片跟文字对齐。就遇到了ascender,所以简单了解了一下,贴在这里以备以后查看~let lb = UILabel(frame: CGRect(x: 100, y: 100, width: 100, height: 100))let font = UIFont.systemFont(ofSize: 20)lb.font = font;lb.text = "afj"self.view.addSu
2021-07-21 20:49:34 1090
原创 iOS_单元测试三之OCMockDemo
OCMock使用举例文章目录OCMock使用举例需要测试的代码:测试步骤:1、准备数据2、添加预期可以预期不执行:可以验证参数:可以预期执行顺序:可以忽略参数(预期方法执行时):3、执行4、断言5、停止Mocking例如:需要测试的代码:@implementation MOOCMockDemo+ (void)handleLoadFinished:(NSDictionary *)info { MOPerson *person = [MOPerson personWithInfo:info]
2021-06-29 18:51:19 391 1
RuntimeDemo项目
2020-02-25
iOS与H5界面JSBridge交互Demo
2017-09-14
下面封装轮播图用到的头文件
2016-03-22
自定义TabBarController标签视图控制器
2016-03-03
WaterfallFlowLayout瀑布流用重写UICollectionViewFlowLayout类实现Demo
2016-01-25
Xcode用AVAudioPlayer实现后台播放Demo
2016-01-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人