自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 T 泛型

T 泛型类型约束 关联类型类型约束在⼀个类型参数后⾯放置协议或者是类,⽐如就要求我们的类型参数 T 遵循 Equatable 协议 func test<T: Equatable>(_ a: T ,_ b: T) -> Bool{ return a == b }关联类型在定义协议的时候,使⽤关联类型给协议中⽤到的类型起⼀个占位符名称protocol StackProtocol { associatedtype Item }st...

2021-01-04 17:44:52 313

原创 where 语句 & associatedtype 类型定义别名

where 语句 &associatedtype 类型定义别名我们先来看一段代码:protocol StackProtocol { associatedtype Item var itemCount: Int{get} mutating func pop() -> Item? func index(of index: Int) -> Item}struct KZHStack: StackProtoc.

2021-01-04 17:21:46 147

原创 protocal 协议

protocal 协议协议的语法格式:protocal MyProtocal { var age: Int {get}}我们熟悉的 class , struct , enum 都可以遵循协议,如果要遵守多个协议,使⽤逗号分隔 struct LGTeacher: Protocol1, Protocol2 { //body }这⾥特别说⼀下,如果 class 中有 superClass ,⼀般我们放在遵循的协议之前 struct KZHTeacher:supe

2021-01-04 16:46:23 628

原创 访问权限

访问权限之前在 OC ⾥⾯我们很少接触这个概念, Swift 当中主要是针对其他源⽂件和模块对你代码的访问控制 这⾥我们先来总结⼀下 Swift 中的有关访问控制权限的关键字:private:访问控制权限仅仅在这个类定义的作⽤域中有效. filePrivate: 访问限制仅限制在当前定义的源⽂件中 Internal:默认访问级别, 允许定义模块中的任意源⽂件访问,但不能被该模块之外的任何源⽂件访问 public:开放式访问,使我们能够在其定义模块的任何源⽂件中使⽤代码,并且可以从另⼀个..

2021-01-03 22:09:47 195

原创 Equatable 协议

Equatable 协议Swift中的类型,可以通过遵循 `Equatable` 协议来使⽤相等运算符(==)和不等运算符(!=)来⽐较两 个值相等还是不相等。Swift 标准库中绝⼤多数的类型都默认实现了 Equatable 协议。 ⽐如我们下⾯这个例⼦:var age1 = 10var age2: Int = 20var isEqual = age1 == age2print(isEqual)对于我们的 Int 来说,系统默认实现了 == 如果我们对于⾃定的类型实现 ==

2021-01-03 21:59:39 375

原创 Optional

OptionalOptioanl 是通过 enum 实现的⼀个⾮常好的代表,这⾥我们可以通过阅读 Optional 的源码来看⼀下:可以看到这⾥ Optional 的本质是⼀个 enum 。当前枚举接收⼀个泛型参数,⽽当前 some 的关联值是当前的 Wrapped ,也就是说下⾯两种写法是完全等价的: var age: Int? var age1: Optional<Int>同样的,既然是枚举,那么我们是不是可以通过模式匹配来匹配对应的值 var age: I.

2021-01-03 21:50:56 82

原创 逃逸闭包&自动闭包

逃逸闭包&自动闭包逃逸闭包的定义: 当闭包作为⼀个实际参数传递给⼀个函数的时候,并且是在函数返回之后调⽤,我们就说这个闭包逃逸了。当我们声明⼀个接受闭包作为形式参数的函数时,你可以在形式参数前写 @escaping 来明确闭包是允许逃逸的。class KZHTeacher { var complitionHandler: ((Int)->Void)? func makeIncrementer(amount: Int, ha...

2021-01-03 21:21:42 748

原创 Swift 元类型、AnyClass、Self

Swift元类型、AnyClass、Self 我们来看⼀下下⾯这段代码的区别: var t = LGTeacher() //此时代表的就是当前 LGTeacher 的实例对象 var t1: AnyObject = t //此时代表的就是 LGTeacher 这个类的类型 var t2: AnyObject = LGTeacher.selfAnyObject: 代表任意类的instance, 类的类型,仅类遵守的协议 Any: 代表任意类型,包括funcation 类型或者 o.

2020-12-22 17:55:58 169

原创 Swift Runtime探索,Error定义使用

Swift Runtime探索,Error定义使用我们⽤下⾯这段代码来测试⼀下: class LGTeacher { var age: Int = 18 func teach(){ print("teach") } } let t = LGTeacher() func test(){ var methodCount:UInt32 = 0 let methodlist = class_copyMethodList(LGTeacher.self,

2020-12-22 17:50:15 135

原创 Swift 指针

Swift 指针Swift中的指针分为两类typed pointer 指定数据类型指针 raw pointer 未指定数据类型的指针(原⽣指针) raw pointer 在 Swift 中的表示是 UnsafeRawPointer tyepd pointer 在 Swift 中的表示是 UnsafePointer<T>我们来看⼀下 Swift 中的指针和 OC 中指针的对应关系: Swift Object-C 说明 unsafeP...

2020-12-16 16:54:07 247

原创 Swift 关键字作用

Swift 关键字作用1. finalfinal正确的使用场景 - 权限控制也就是说这个类或方法不希望被继承和重写,具体情况如下:(1)类或者方法的功能确实已经完备了这种通常是一些辅助性质的工具类或者方法,特别那种只包含类方法而没有实例方法的类。比如MD5加密类这种,算法都十分固定,我们基本不会再继承和重写。(2)避免子类继承和修改造成危险有些方法如果被子类继承重写会造成破坏性的后果,导致无法正常工作,则需要将其标为final加以保护。(3)为了让父类中某些代码一定会执行父类的方

2020-12-14 17:48:16 170

原创 Swift 方法调度

Swift 方法调度&指针使用1.方法调度结构体方法是静态调用(直接调用) 类方法是通过V_table来调用的 V-Table 在 SIL 中的表示是这样的: 1 decl ::= sil-vtable2 sil-vtable ::= 'sil_vtable' identifier '{' sil-vtable-entry* '}'3 sil-vtable-entry ::= sil-decl-ref ':' sil-linkage? sil-function-na.

2020-12-14 17:23:38 100

原创 Swift内存分布

Swift内存分布

2020-12-14 13:02:14 144

原创 Swift值类型与引⽤类型

Swift值类型与引⽤类型 1.延迟存储属性class KZHTeacher{ lazy var age: Int = 18}用 lazy 修饰的存储属性 延迟存储属性必须有一个默认值 延迟存储在第一次访问的时候才被赋值 延迟存储属性并不能保证线程安全 延迟存储属性对实例对象大小有影响2.类型属性class KZHTeacher{ static let shareInstance: KZHTeacher = KZHTheacher() prive...

2020-12-10 16:30:39 79 1

转载 iOS自定义statusbar上icon的颜色

UIView *statusbar = [[UIApplication sharedApplication] valueForKey:@"statusBar"];statusbar.backgroundColor= [UIColor redColor];https://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid

2017-08-04 15:29:47 378

原创 手势移动的位置转换

// 转换为在父视图的中心位置CGPoint point = [gesturelocationInView:SupperView];// 设置拖拽响应的范围 - (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

2017-06-12 11:35:05 458

转载 欲先攻其事必先利其器 (第三方资源篇)

https://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=2652548688&idx=1&sn=b9c2c6f081a68f883a884ef27cdbb247&chksm=bcd2eb5e8ba5624804df7ea603f64c844a679da61cc8af1aadba6f5101c2bb36f9bb6f19c860&scene=0&ke

2017-03-31 16:57:25 655

转载 CAShapeLayer 动画圆形进度条

CAShapeLayer *shapeLayer = [CAShapeLayer layer];shapeLayer.frame = _demoView.bounds;UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:_demoView.bounds];shapeLayer.path = path.CGP

2017-02-22 13:29:53 372

翻译 pdf显示

iOS开发:PDF文件的加载及显示(网络、本地)显示PDF文件的方法以下几种:1.使用UIWebView加载,没啥说的,根据文件路径,网络或者本地皆可,创建一个NSURLRequest,然后用webView加载就可以了,但仅仅能显示文件。2.使用UIDocumentInteractionController或QLPreviewCont

2016-10-31 16:31:49 601

翻译 NSRunLoop_mode_timer

1.NSRunLoop  相似于do()while{}  保证应用程序不被关闭ios 中runLopp 两种方式 1: NSRunLoop (oc)   2:CFRunLoop (c语言)NSRunLoop  五种模式1:KCFRunLoopDefaultMode     默认mode  主线程是在该mode下运行的2:UITrackingRunLoopMode       界

2016-09-22 14:26:21 324

转载 Runtime优雅的解决UIButton多次点击(重复点击)

http://www.jianshu.com/p/e4f1fb537af9

2016-08-25 19:24:34 351

翻译 根据Dictionary KEY 自动生成属性

#import @interface NSObject (propertyCode)/** * 自动生成属性申明Code * * @param dict 传入的字典 */+ (void)propertyCodeWithDictionary:(NSDictionary *)dict;@end#import "NSObject+propertyCode.h"@impl

2016-08-25 18:18:04 326

翻译 AFNetWork3.0简单封装

#import "HTTPToolRequest.h"#define TIMEOUTInterval 10@implementation HTTPToolRequest+ (AFHTTPSessionManager *)generalManager{ AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]

2016-08-25 18:16:13 682

翻译 加载等待动画

http://www.jianshu.com/p/b660eb8b8bc1

2016-08-25 16:12:10 433

转载 iOS-仿QQ侧边栏

http://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=2652547147&idx=4&sn=16b359854d74bc0e6f79aac545beae5b&scene=0#wechat_redirect

2016-08-18 15:46:07 825

翻译 类似微信文本输入框实现,底部评论输入View,随着文字的增加,textView自增长高度

http://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=2652546991&idx=5&sn=0ae83d2648193c9c40bcf15847d30519&scene=0#wechat_redirect

2016-08-04 11:52:18 1277

翻译 ios alert对话框 弹出菜单

http://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=2652546872&idx=1&sn=a19ce93b18387c38c6d5bd2a075071a2&scene=0#wechat_redirect

2016-07-29 10:25:14 472

转载 ios 下拉刷新

http://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=2652546833&idx=1&sn=149b2e33a1fc8913203d435b1fc4dbf7&scene=0#wechat_redirect

2016-07-29 10:20:55 193

翻译 iOS开源项目推荐|侧滑与右滑返回手势

http://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=2652546822&idx=1&sn=4c4a1dfa483cf69896ac2782410734fe&scene=0#wechat_redirect

2016-07-27 15:16:00 179

翻译 画圆环 从正上方开始

_progressPath = [UIBezierPath bezierPathWithArcCenter:self.center radius:(self.bounds.size.width - _progressWidth)/ 2 startAngle:- M_PI_2 endAngle:(M_PI * 2) * _progress - M_PI_2 clockwise:YES];    

2016-07-20 10:39:06 295

转载 UIBezierPath 画线 圆 弧

http://www.jianshu.com/p/281373b6d1a8

2016-07-19 15:21:04 531

翻译 iOS 日常工作之常用宏定义大全

http://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=2652546295&idx=1&sn=3c0217a67e0cfbce8cc285cb1cc9b3c1&scene=0#wechat_redirect

2016-07-09 13:29:56 167

翻译 iOS SDWebImage 淡入 UITableViewCell

[cell.userImageView setImageWithURL:url                   placeholderImage:placeholderImage                          completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {         

2016-07-07 18:43:41 246

翻译 ios UITableview头部图片弹簧效果

http://blog.sina.com.cn/s/blog_8d1bc23f0102vu1q.html

2016-07-07 14:58:26 732

翻译 缩放动画

- (CABasicAnimation *)scale:(NSNumber *)Multiple orgin:(NSNumber *)orginMultiple durTimes:(float)time Rep:(float)repeatTimes{        CABasicAnimation *animation=[CABasicAnimationanimatio

2015-08-06 11:48:22 340

翻译 360度旋转图片

CABasicAnimation* rotationAnimation;    rotationAnimation = [CABasicAnimationanimationWithKeyPath:@"transform.rotation.z"];    rotationAnimation.toValue = [NSNumbernumberWithFloat: M_PI *2.0

2015-08-06 11:44:09 526

翻译 获取带有emoji的字符串宽度和高度

// 得到带有emoji string长度和宽度+ (CGSize) calculateEnojiStringSizeWithString:(NSString *) content font:(UIFont *) font constraintStringWidth:(CGFloat)stirngWidth{    NSMutableParagraphStyle *paragr

2015-08-06 11:33:54 695

翻译 文字渐变效果

- (void)viewDidLoad{    [superviewDidLoad];        self.title =@"测试控制器";        UILabel *textLab = [[UILabelalloc] initWithFrame:CGRectMake(50,200, 200,30)];    textLab.backgro

2015-07-17 17:23:33 412

翻译 通过keychaini获取ios唯一标识

1.导入 KeychainItemWrapper.h  和.m文件    需导入库2.设置设备唯一标识值-(void) setKeyChainValue{    KeychainItemWrapper *keyChainItem=[[KeychainItemWrapperalloc]initWithIdentifier:@"TestUUID"accessGroup:ni

2015-07-15 11:14:08 482

翻译 解决UITableView在iOS7中UINavigationController里的顶部留白问题

// 让边缘留白为空    float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];    if (systemVersion >= 7.0) {        self.edgesForExtendedLayout = UIRectEdgeNone;    }

2015-07-08 15:24:14 512

空空如也

空空如也

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

TA关注的人

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