合集-iOS
摘要:共同点:这两个宏在UIKit_Framework中定义。只有给属性设置了IBAction(行为)和IBOutlet(插座),才能够在storyboard里面进行连线。如: #import "ViewController.h" @interface ViewController ()@property
阅读全文
摘要:解决: 'NSUnknownKeyException', reason: '[<ViewController 0x7fdf7048b200> setValue:forUndefinedKey:]: this class is not key value coding-compliant for th
阅读全文
摘要:作用:既能显示文字,也能显示图片 状态:高亮,正常,按下 内部: @property(nonatomic,readonly,retain)UILabel *titleLabel NS_AVAILABLE_IOS(3_0); @property(nonatomic,readonly,retain)UI
阅读全文
摘要:// 创建label UILabel *label = [[UILabel alloc] init]; // 设置显示的文字 label.text = @"Hello world!Hello world!Hello world!Hello world!"; // 设置frame label.fram
阅读全文
摘要:前提:父子控件是相当于两个对象而言的,单个对象没有父子关系。 在Xcode中,每一个控件都是容器,可以装载其他控件。在一个父控件中拖入或者代码写入一个控件,这两个控件就构成父子关系。即大的控件是小的控件的父控件,小的控件是打的控件的子控件。 添加子控件 UIButton * btu; [self.v
阅读全文
摘要:@property(nonatomic,readonly) UIView *superview; 获得自己的父控件对象 @property(nonatomic,readonly,copy) NSArray *subviews; 获得自己的所有子控件对象 @property(nonatomic) NS
阅读全文
摘要:第一种 头尾式(现在苹果官方以经废弃): // 开始动画 [UIView beginAnimations:nil context:nil]; // 设置动画时间 [UIView setAnimationDuration:2.0]; /* 需要执行动画的代码 */ // 提交动画 [UIView co
阅读全文
摘要:懒加载即第一次用到的时候再去加载,之后加载一次,优化代码 重写属性的get方法 如: -(void)shops { if(_shops == nil){ // 第二次不会进来 // 加载数据 } return _shops;} 注意:在懒加载用,使用set方法,要不然会让懒加载死循环。
阅读全文
摘要:加载xib的两种方式 NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"test" owner:nil options:nil]; UINib *nib = [UINib nibWithNibName:@"Test" bundle:nil]
阅读全文
摘要:步骤 新建一个继承UIView的类 重写init方法,在init方法中添加子控件 在layoutSubviews方法中设置子控件的frame(layoutSubviewsy一定要调用super ) 提供一个模型属性,重写模型属性的set方法(在set方法中取出模型属性,给对应的子控件赋值) //来自
阅读全文
摘要:-assign '基本数据类型'、’枚举‘、’结构体‘等非OC对象 -weak OC对象类型(比如NSArray、NSDate、NSNumber、模型类) -strong OC对象类型(比如NSArray、NSDate、NSNumber、模型类) 一个对象只要有强指针引用,就不会被销毁
阅读全文
摘要:id的缺点 NSString *str = [XMGShop shopWithDict:nil]; NSLog(@"%@", str.length); 提问:会不会报错?会报什么错? 答:shop没有length方法,所以用id会发生一些莫名其妙的错,而且编译器不会报错(在开发阶段没发现是很严重的问
阅读全文
摘要://这个函数来自文件拳皇,感兴趣的朋友可以自行下载-(void) play:(NSString *)nam count: (int)count{ NSMutableArray *images=[NSMutableArray array]; //讲图片放入数组images中 for(int i=1;i
阅读全文
摘要:资源管理 1-图片放到supporting Files注意事项 注意: 如果放到images.xcassets中,默认就是拷贝源文件过来 不勾选copy,项目文件夹中是没有的,仅仅是引用,建议勾选。 2-Add to targets 要不要把图片打包到软件安装包中去 3-Added folder 如
阅读全文
摘要:MemoryLayout MemoryLayout //范型 MemoryLayout.size MemoryLayout.stride MemoryLayout.alignment ##可选项 var age: Int? ##强制解包 var num: Int = age! ##空合并运算符 le
阅读全文
摘要:网络 Alamofire:类似于AFNetworking Kingfisher:类似于SDWebImage 字典转模型 KakaJSON 布局控价 SnapKit tabbar框架 ESTabBarController-swift
阅读全文
摘要:##基本概念 1. 仓库(Repository) - 远端仓库 - 本地仓库 - 暂存区(可以理解为缓存) - 工作区 2. 讨论(Issues) 可以向框架的作者提出问题,作者可以收到并且回复 3. 公共库和私有库 4. Fork:可以理解为复制一份框架代码,这两个代码相对独立。 5. 合并亲求(
阅读全文
摘要:#内存(寄存器) ##枚举变量的内存布局 https://github.com/CoderMJLee/Mems ##类和结构体的内存布局
阅读全文
摘要:#基础语法 ##if-else let age =4 for(区间) let rang = ...10 rang.contains(11) //false rang.contains(6) ..ture ###带间隔的区间值 for tickMark in stride(form: 4, throu
阅读全文
摘要:枚举 一般情况 enum Sorce { case y case x } let direction: Sorce = .x 结果: x rawValue enum Direction: String { case north = "N" case south = "S" case east = "
阅读全文