![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS
文章平均质量分 92
mingC0758
技术沉淀中..
展开
-
UIButton、UIGestureRecognizer和hitTest
UIButton、UIGestureRecognizer和hitTest概述需求现状解决方案其他userInteractionEnable和hitTest的关系概述父视图是一个普通的UIView,添加了点击手势UITapGestureRecognizer;UIButton可以点击UIView的userInteractionEnable = YES(默认值),无手势UIBotton和UIView都是GeastureContainerView的子View需求当点击UIView时,既不响应UI原创 2020-12-03 00:52:15 · 802 阅读 · 0 评论 -
UIView的三个控制触摸回调的方法
cancelsTouchesInView/delaysTouchesBegan/delaysTouchesEnded(0)首先要知道的是1.这3个属性是作用于GestureRecognizers(手势识别)与触摸事件之间联系的属性。实际应用中好像很少会把它们放到一起,大多都只是运用手势识别,所以这3个属性应该很少会用到。2.对于触摸事件,window只会有一个控件来接收touch。这个控件是首先接触到touch的并且重写了触摸事件方法(一个即可)的控件3.手势识别和触摸事件是两个独立的事,只是可转载 2020-11-23 14:16:39 · 369 阅读 · 0 评论 -
iOS使用系统提供的高斯模糊组件
UIBlurEffectUIBlurEffect will provide a blur that appears to have been applied to the content layered behind the UIVisualEffectView. Views added to the contentView of a blur visual effect are not blurred themselves.UIBlurEffect需要结合UIVisualEffectView来使原创 2020-10-26 21:40:15 · 1570 阅读 · 4 评论 -
XCode单元测试简单示例
简单示例创建工程的时候勾选上☑️Include TestsXCode会自动创建Test的两个Target打开.m文件,自动生成了几个方法,这几个方法的调用顺序如下:2020-10-26 11:04:49.963661+0800 同朕checkcheck[89934:2711233] ---setUp2020-10-26 11:04:49.963781+0800 同朕checkcheck[89934:2711233] ---testPerformanceExample2020-10-2原创 2020-10-26 14:09:15 · 489 阅读 · 0 评论 -
Swift苹果官方教程文档阅读和学习
入门文档Guide Book:https://docs.swift.org/swift-book/LanguageGuide/TheBasics.htmlSwift Feature: https://developer.apple.com/swift/问题记录Swift Feature值类型And Swift heavily leverages value types, especially for commonly used types like Arrays and Diction原创 2020-08-05 14:21:19 · 1706 阅读 · 0 评论 -
iOS bounds备忘
背景:在系统状态栏下方加一个UICollectionView,发现UICollectionView自动向下偏移了20px,观察布局发现UICollectionView.bounds.y = -20。原因:UICollectionView所在VC少写self.automaticallyAdjustsScrollViewInsets = NO; 被系统搞了collectionView.bounds.y = -20https://blog.csdn.net/mad1989/article/details/87原创 2020-07-27 11:10:18 · 211 阅读 · 0 评论 -
利用XCode进行iOS模拟定位
利用XCode进行iOS模拟定位打开项目的scheme配置在options中打开Allow Location Simulation开关,在Default Location中有常用的地点供模拟手动编写gpx后缀的文件在这个网站查询对应地点的经纬度: https://jingweidu.51240.com/,填入下面的xml文件中location.gpx<?x...原创 2019-10-30 15:51:54 · 6063 阅读 · 0 评论 -
NSNotification 你不知道的使用技巧
NSNotification使用姿势基本使用发送通知:- (void)postNotificationName:(NSNotificationName)aName object:(nullable id)anObject userInfo:(nullable NSDictionary *)aUserInfo;aName:通知名称anObject:发送者(sender)aUserIn...原创 2019-09-23 18:37:43 · 386 阅读 · 0 评论 -
iOS Runtime之isa指针探索与object_setClass的实质
iOS Runtime之isa指针探索与object_setClass的实质探索isa的指向测试代码:@interface Company : NSObject@property (assign, nonatomic) int cid;@end Company *company = [Company new]; company.cid = 255; NSLog(...原创 2019-09-23 18:36:51 · 1146 阅读 · 0 评论 -
iOS触摸优先级&&多手势处理
一张图说明iOS触摸优先级手势识别器 -> 响应链的 onTouchBegin、onTouchMoved…若手势识别器已经处理了,那么不会传递到响应链,相应的onTouchBegin、onTouchMoved…也不会被调用多个手势的处理通过设置gestureRecognizer的delegate,delegate实现:- (BOOL)gestureRecognizer:(...原创 2019-09-20 20:20:18 · 3293 阅读 · 0 评论 -
iOS crash分类
iOS crash分类OC ExceptionObjective-C层的异常。捕获方法:通过NSSetUncaughtExceptionHandler来设置处理器。Mach Exception捕获方法:task_set_exception_ports() 创建子线程、创建异常监听端口。系统内核(mach)层面的异常。最终转成SIGABRT。总结几个常见的Mach异常(Excepti...原创 2019-08-07 10:12:44 · 754 阅读 · 0 评论 -
【转载】NSOperation
转自:https://www.jianshu.com/p/73b5f5dda06a同步与异步函数:1.1 同步函数:NSOperation中,任务的start方法是同步函数,start是让任务在当前线程中同步串行执行,并且调用内部的main方法a 如果要让任务在当前线程执行,就直接创建任务并start,而不是加入到队列中1.2 异步函数:NSOperationQueue都是异步函数。...转载 2019-08-13 17:22:44 · 182 阅读 · 0 评论 -
Objective-C 单例模式的实现
OC中实现单例模式最简单的写法,存在线程安全问题:@implementation Singleton+ (instancetype)shareInstance { static Singleton *instance = nil; if (! instance) { instance = [[Singleton alloc] init]; } ...原创 2019-07-22 12:47:17 · 483 阅读 · 0 评论 -
iOS-CALayer
iOS-CALayerCALayer是图层的意思。每个View都有一个根图层。图层可以添加子图层,子图层覆盖在父图层之上- (void)viewDidLoad { self.view.backgroundColor =[UIColor whiteColor]; UIView *view = [[UIView alloc] initWithFrame:self.view....原创 2019-07-10 20:10:48 · 330 阅读 · 0 评论 -
Objective-C入门
介绍Objective-C是C语言的严格超集,也就是在OC中使用C语言的语法是合法的。OC原意就是在C语言上加入面向对象的特性。文件扩展名:.h | .m | .mm。.m可以包含oc和c代码;.mm可以包含oc/c/C++代码。部分C语言的合法代码是在oc中的意义不一定相同。消息传递模型在OC中,可以用消息传递来描述对象之间的方法调用。调用方法视为给对象发送消息。所有方法视为...原创 2019-07-04 11:06:56 · 780 阅读 · 0 评论 -
Objective-C入门(二)
类别(Category)类别可以为原有类增加方法。用法:@interface ClassName(CategoryName)@end示例://NSStringAdditions.h@interface NSString (NSStringAdditions)+ (NSString *) getAuthorNameString;@end//NSStringAdditions.m...原创 2019-07-04 18:20:10 · 187 阅读 · 0 评论 -
iOSView绘制相关
iOS绘图框架iOS的绘图框架有多种,我们平常最常用的就是UIKit,其底层是依赖CoreGraphics实现的,而且绝大多数的图形界面也都是由UIKit完成,并且UIImage、NSString、UIBezierPath、UIColor等都知道如何绘制自己,也提供了一些方法来满足我们常用的绘图需求。除了UIKit,还有CoreGraphics、Core Animation,Core Imag...原创 2019-07-14 18:44:07 · 490 阅读 · 0 评论 -
CGContextSaveGState作用
先说结论:CGContextSaveGState是保存当前的上下文,可以理解为保存了当前的绘制环境,比如画笔颜色、画笔大小等信息。实验:- (void)drawRect:(CGRect)rect { CGContextRef ctx = UIGraphicsGetCurrentContext(); //设置蓝色画笔 CGContextSetFillColorWit...原创 2019-07-14 21:02:36 · 409 阅读 · 1 评论 -
sizeToFits和sizeThatFits
sizeToFits和sizeThatFitssizeToFitsnumberOfLines = 1 的时候调用 sizeToFit() 只会修改 label 的 widthnumberOfLines != 1 的时候调用 sizeToFit() 的时候会在第一调用的时候确认 label 的 width。如果 调用 sizeToFit() 得到的宽度小于 label.bo...原创 2019-07-15 10:29:20 · 412 阅读 · 0 评论 -
iOS 网络编程(NSUrlSession)
NSUrlSession提供了四大任务:DataTask 数据请求DownloadTask 文件下载,获取进度、断点续传UploadTask 文件上传StreamTask TCP链接(iOS 9+)原创 2019-07-14 20:10:43 · 199 阅读 · 0 评论 -
iOS文件存储学习
//// ViewController.m// MakeStrong//// Created by momingqi on 2019/7/15.// Copyright © 2019 momingqi. All rights reserved.//#import "ViewController.h"#import <sqlite3.h>#import <...原创 2019-07-16 18:45:15 · 139 阅读 · 0 评论 -
iOS KVO和KVC介绍
iOS KVO和KVC介绍KVO和KVC都是基于对NSObject的扩展来实现的,所有继承于NSObject的子类都能使用KVO和KVC。用来测试的model:@interface User : NSObject@property (assign, nonatomic) NSInteger uid;@property (copy, nonatomic) NSString *name;@...原创 2019-07-19 15:49:05 · 517 阅读 · 0 评论 -
Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)的崩溃原因
崩溃场景在学习iOS多线程的时候,编写了一个demo:dispatch_queue_t queue = dispatch_queue_create("gcd_test_label", DISPATCH_QUEUE_CONCURRENT); [queue addObserver:self forKeyPath:@"isExecuting" options:NSKeyValueObserv...原创 2019-07-20 23:45:16 · 2398 阅读 · 0 评论 -
iOS 异常处理
自定义异常- (void) willCrash { NSDictionary *userInfo = @{@"age":@12, @"text":@"momingqi is man."}; NSException *exception = [NSException exceptionWithName:@"自定义异常" reason:@"自定义异常原因" userInfo:user...原创 2019-07-30 17:30:53 · 503 阅读 · 0 评论 -
汇编相关
栈栈是从高地址向低地址扩展的。ebp指向栈的底部esp指向栈的顶部入栈操作:push eax;等于ebp = ebp - 4; eax->[ebp] (把eax的值存放到ebp位置上)出栈操作:pop eax;等于[ebp]->eax; ebp = ebp + 4;函数调用调用入栈:返回出栈:...原创 2019-07-30 20:59:02 · 153 阅读 · 0 评论 -
iOS多线程
https://www.cnblogs.com/weiming4219/p/7649661.html转载 2019-07-09 10:23:28 · 123 阅读 · 0 评论