![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
自学IOS
碎语1992
这个作者很懒,什么都没留下…
展开
-
oc中传统的get和set方法
声明部分.h文件#import @interface Person : NSObject{ NSString *_name; int _age;}//set方法-(void)setAge:(int)age;-(void)setName:(NSString *)name;原创 2015-12-30 21:21:39 · 360 阅读 · 0 评论 -
通过代码自定义cell(cell的高度不一致)
1.新建一个继承自UITableViewCell的类2.重写initWithStyle:reuseIdentifier:方法 添加所有需要显示的子控件(不需要设置子控件的数据和frame, 子控件要添加到contentView中) 进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片)3.提供2个模型 数据模型: 存放文字数据\图片数据 frame模型: 存原创 2016-07-30 16:35:06 · 186 阅读 · 0 评论 -
各个需要整理的知识点 现在只是几个路径
3.Xcode文档安装路径 /Applications/Xcode.app/Contents/Developer/Documentation/DocSets4.Xcode模拟器安装路径 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs原创 2016-07-30 16:34:20 · 200 阅读 · 0 评论 -
通过代码自定义cell(cell的高度不一致)
cell的高度不一致情况的实现步骤1.新建一个继承自UITableViewCell的类2.重写initWithStyle:reuseIdentifier:方法1)添加所有需要显示的子控件(不需要设置子控件的数据和frame, 子控件要添加到contentView中)2)进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片)3原创 2016-03-13 15:52:43 · 549 阅读 · 0 评论 -
第四天课程(超级猜图项目)-琐碎知识
视频为:传智播客2014年第四期3-6月份(MJ老师的视频) – 第四天(超级猜图项目)课程 注:完全掌握的会随时删除控制状态栏的样式在ViewController.m中写下如下方法/** * 控制状态栏的样式 */- (UIStatusBarStyle)preferredStatusBarStyle{ // 白色 return UIStatus原创 2016-01-13 23:12:35 · 333 阅读 · 0 评论 -
iOS中的动画-简单介绍
iOS中有两种动画方式第一种:头尾式[UIView beginAnimations:nil context:nil];//设置动画持续时间[UIView setAnimationDuration:2.0];//动画执行完毕后,调用removeCover方法 (代理模式)[UIView setAnimationDelegate:self];[UIView setAnimationDidSto原创 2016-01-15 12:47:53 · 225 阅读 · 0 评论 -
对象从xib中创建初始化完毕的时会调用的方法
对象从xib中创建初始化完毕的时会调用的方法/** * 当一个对象从xib中创建初始化完毕的时候就会调用一次 */-(void)awakeFromNib{}// 注:通过代码创建初始化一个对象的时候,才会调用init方法原创 2016-02-23 20:49:59 · 2112 阅读 · 0 评论 -
第七天课程(团购 微博项目)-琐碎知识
视频为:传智播客2014年第四期3-6月份(MJ老师的视频) – 第七天(UITableView控件使用)课程 注1:完全掌握的会随时删除 注2:把很多琐碎知识点记下来比较好,琐碎并且容易忘记,利于加强记忆,并且省的再找很长时间替换XCode中资源文件后的操作替换资源文件后,如果程序运行还是出错,需要操作如下两个步骤: 1)先把模拟器的对应应用程序卸载 2)然后在Xcode中,选择“pr原创 2016-02-12 22:10:00 · 359 阅读 · 0 评论 -
等待控件(UIActivityIndicatorView)不转动的原因
等待控件(UIActivityIndicatorView)不转动的原因等待控件不转动的原因:勾选Animating,并且建议勾选上Hides When Stopped原创 2016-02-23 20:46:24 · 986 阅读 · 0 评论 -
第十天课程()-琐碎知识
视频为:传智播客2014年第四期3-6月份(MJ老师的视频) – 第十天(多控制器管理)课程 注1:完全掌握的会随时删除 注2:把很多琐碎知识点记下来比较好,琐碎并且容易忘记,利于加强记忆,并且省的再找很长时间原创 2016-07-30 16:35:51 · 238 阅读 · 0 评论 -
笔记
1.通过xib自定义cell * 添加tableView * 加载团购数据 * 新建xib,获取子控件 * 封装 * 最后引入headerView和footerView(插入广告,加载更多)2.通过代码自定义cell * 引入UITableViewController * 加载模型数据MJStatus,用自带的cell展示基本数据 * 新建一个MJStatusCell,封装模型原创 2016-07-30 16:36:23 · 152 阅读 · 0 评论 -
OC点语法的使用
使用点语法赋值和取值方法点语法:xcode的特性,xcode帮我们做代码替换对象.属性名注意:此时(p.age)并不是直接访问实例变量,而是xcode看到点语法(p.age=18)后,会帮我们自动替换成[p setAge:18]p.age –替换–>[p setAge:18]// 旧的赋值和取值方法Person *p=[Person new];//调用set方法[p setAge:1原创 2016-01-01 19:59:03 · 311 阅读 · 0 评论 -
instancetype类型和id类型的异同
ios5之后推出了instancetype类型1)相同点 都可以作为方法的返回类型2)不同点instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象。instancetype只能作为返回值,不能像id类型那样作为参数。原创 2016-01-01 20:32:42 · 343 阅读 · 0 评论 -
控制器的创建方式
控制器的创建方式:1)直接利用代码alloc init创建2)使用主动的方式加载storyboard注:如果项目中设置了主窗口,则不用代码也可以加载storyboard(系统自动生成的),使用纯项目则需要手动添加代码- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptio原创 2016-07-30 16:38:10 · 334 阅读 · 0 评论 -
UIWindow的介绍和使用
•UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow•iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了•一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow,也就说,没有UIWindow,就看不见任何UI界面原创 2016-07-30 16:37:54 · 648 阅读 · 0 评论 -
iOS程序的启动过程
1.main函数2.UIApplicationMain* 创建UIApplication对象* 创建UIApplication的delegate对象3.delegate对象开始处理(监听)系统事件(没有storyboard)* 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWith原创 2016-07-30 16:37:43 · 211 阅读 · 0 评论 -
四大对象关系图
/** * 程序启动完毕就会调用一次 */- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 1.创建window self.window = [[UIWindow alloc] initW原创 2016-07-30 16:37:30 · 622 阅读 · 0 评论 -
UIApplication对象的介绍和使用
1) UIApplication对象是应用程序的象征2) 每一个应用都有自己的UIApplication对象,而且是单例的3) 一个iOS程序启动后创建的第一个对象就是UIApplication对象4) 通过[UIApplication sharedApplication]可以获得这个单例对象5) 利用UIApplication对象,能进行一些应用级别的操作UIAp原创 2016-07-30 16:36:48 · 278 阅读 · 0 评论 -
Info.plist文件介绍和常见属性
Info.plist文件介绍建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist”项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist”项目中还原创 2016-07-30 16:36:36 · 1589 阅读 · 0 评论 -
Xcode文件夹的分类
Xcode文件夹的分类主要分为:Classes文件夹 和 Supporting Files文件夹Classes文件夹存放:Other文件夹、Model文件夹、View文件夹、Controller文件夹1)Other文件夹:存放非MVC文件 2)Model文件夹:存放模型文件 3)View文件夹:存放xib文件 4)Controller文件夹:存放控制器文件 5)Supporting File原创 2016-02-23 20:44:57 · 670 阅读 · 0 评论 -
第六天课程(汽车品牌 英雄联盟项目)-琐碎知识
视频为:传智播客2014年第四期3-6月份(MJ老师的视频) – 第六天(UITableView控件使用)课程 注1:完全掌握的会随时删除 注2:把很多琐碎知识点记下来比较好,琐碎并且容易忘记,利于加强记忆,并且省的再找很长时间原创 2016-01-27 14:30:53 · 376 阅读 · 0 评论 -
弹出框提示的使用 - 不是很完善
ios7/8中的使用// 1.从底部弹出提示(UIActionSheet已经被ios9弃用)UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"恭喜通关" delegate:nil cancelButtonTitle:@"取消" destructiveButtonTitle:@"确定" otherButtonTitles:@"原创 2016-01-21 13:52:56 · 307 阅读 · 0 评论 -
UITableViewCell的使用和属性
UITableView的每一行都是一个UITableViewCell,通过dataSource的tableView:cellForRowAtIndexPath:方法来初始化每一行。辅助指示视图UITableViewCell内部有个默认的子视图:contentView,contentView是UITableViewCell所显示内容的父视图,可显示一些辅助指示视图。辅助指示视图的作用是显示一个表示动作原创 2016-01-28 23:17:56 · 416 阅读 · 0 评论 -
设置UILabel控件的圆角
设置UILabel控件的圆角,使用UILabel的属性来实现// 设置UILabel控件的圆角// 也可以利用控件的尺寸和圆角半径,产生一个圆label.layer.cornerRadius = 5;// 超出主层边界的内容统统剪掉(没有圆角的原因)// 这句话在ios6中不需要设置,但在ios7中需要设置一次,因为在ios7中默认为NO// label.layer.masksToBoun原创 2016-01-25 21:48:45 · 7504 阅读 · 0 评论 -
第五天课程(6个项目)-琐碎知识
获取控件上最大的Y值CGFloat contentH = CGRectGetMaxY(self.lastBtn.frame);原创 2016-01-19 22:50:18 · 213 阅读 · 0 评论 -
UIScrollView控件的使用--常见属性的使用
UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容,并且可以使用缩放功能三个重要和常见的属性1. contentSize属性 必须设置的属性,需要告诉UIScrollView的滚动范围 注:如果不设置此属性,则无法实现滚动// 设置具体的数值self.scrollView.contentSize = CGSizeMake(892, 63原创 2016-01-20 14:41:45 · 248 阅读 · 0 评论 -
使用xib封装一个自定义view的步骤
视频为:传智播客2014年第四期3-6月份(MJ老师的视频) – 第三天(应用管理小项目)课程1.新建一个继承UIView的自定义view,假设类型叫做(MJAppView) 注意:新建MJAppView时,要继承自UIView,否则xib文件无法关联MJAppView.h 文件代码#import <UIKit/UIKit.h>@class MJApp;@interface MJAppView :原创 2016-01-08 16:19:55 · 502 阅读 · 0 评论 -
NSBundle类的介绍
当创建一个应用时,系统存储了应用相关联的所有数据(其中包括图片、本地化字符串、图标等),将这些内容放入一个称为应用包(application bundle)的包中。为了访问应用中的这些资源,需要熟悉NSBundle类一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹利用mainBundle就可以访问软件资源包中的任何资源我自己电脑上模拟器路径(做个笔记,以免自己忘了)原创 2016-01-03 23:11:07 · 340 阅读 · 0 评论 -
UIImageView和UIButton的相同点和不同点
1> 使用场合 * UIImageView: 如果仅仅是显示图片,不需要监听图片的点击则使用UIImageView * UIButton: 既要显示图片,又要监听图片的点击则使用UIButton2> 相同点 都能显示图片3> 不同点 * UIButton能处理点击事件, UIImageView不能处理点击事件 * UIButton既能显示图片, 又能显示文字 * UIButton能同时显原创 2016-01-03 22:13:23 · 247 阅读 · 0 评论 -
KVC的使用 -- 没整明白呢 先留个位置 第四天课程的结尾
KVC的使用 -- 没整明白呢 先留个位置 第四天课程的结尾原创 2016-01-18 22:00:43 · 230 阅读 · 0 评论 -
UITableView的数据源设置和简单介绍
视频为:传智播客2014年第四期3-6月份(MJ老师的视频) – 第六天(UITableView控件使用)课程 设置数据源对象必须遵守UITableView的数据源协议UITableViewDataSourcetableView数据源绑定: 1.一般使用控制器作为UITableView的数据源,控制器需要遵守 UITableViewDataSource 协议 2.添加UITableView的属性原创 2016-01-27 22:50:43 · 651 阅读 · 0 评论 -
UITableView的常见属性
设置分割线的颜色和样式// 设置分割线的颜色和样式self.tableView.separatorColor = [UIColor colorWithRed:255/255.0 green:0 blue:255/255.0 alpha:255/255.0];self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLin原创 2016-01-29 16:05:30 · 241 阅读 · 0 评论 -
退出键盘
第一响应者:叫出键盘的那个控件为第一响应者。 第一种退出键盘的方法: 不当第一响应者,就会吧键盘退下(但是每个控件都需要写上该句代码)[self.num1 resignFirstResponder];[self.num2 resignFirstResponder];第二种退出键盘的方法:[self.view endEditing:YES];原创 2016-02-23 21:57:30 · 265 阅读 · 0 评论 -
获取一串文字的高度
获取一串文字的高度,受如下几个因素的影响 1)字体的大小 2)显示文字容器的宽高//文本字体// NSFontAttributeName为常量,不可改变NSDictionary *attrs = @{NSFontAttributeName : [UIFont systemFontOfSize:15]};CGSize size = [self.status.name boundingRectW原创 2016-02-12 23:12:19 · 294 阅读 · 0 评论 -
UITableView添加footerView按钮
UITableView添加自定义的footerView按钮注:不需要设置footer的尺寸// 设置footerView// 注意:不需要设置footer的尺寸MJTgFooterView *footer = [MJTgFooterView footerView];footer.controller = self;self.tableView.tableFooterView = footer原创 2016-02-12 23:09:40 · 3730 阅读 · 0 评论 -
将字典转为模型
使用字典的坏处 一般情况下,设置数据和取出数据都是用“字符串类型的key”,编写这些key时,编译器不会有任何友善提示,需要手敲;dict[@"name"] = @"Jack";NSString *name = dict[@"name"];原创 2016-01-07 17:47:51 · 337 阅读 · 0 评论 -
NSTimer定时器的使用
NSTimer叫做“定时器”,它的作用如下: 1)在指定的时间执行指定的任务 2)每隔一段时间执行指定的任务调用下面的方法就会开启一个定时任务:+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo原创 2016-01-20 22:28:39 · 1591 阅读 · 0 评论 -
UIScrollView控件的代理
UIScrollView控件的代理 介绍很多时候,我们想在UIScrollView正在滚动、滚动到某个位置、停止滚动时做一些特定的操作,和对UIScrollView内容的缩放。完成上述的功能的前提条件是能够监听UIScrollView的整个滚动过程。当UIScrollView发生一系列的滚动操作时,会自动通知它的代理(delegate)对象,给它的代理发送相应的消息,让代理得知它的滚动情况。也就是说原创 2016-01-20 16:02:20 · 243 阅读 · 0 评论 -
UITableView的性能优化
iOS设备的内存有限,如果用UITableView显示成千上万条数据,就需要成千上万个UITableViewCell对象的话,那将会耗尽iOS设备的内存。要解决该问题,需要重用UITableViewCell对象。注:如果不使用缓存池的情况,离开屏幕的cell也会自动被销毁,但是在拖动的过程中cell会不断的创建和销毁。性能优化概述重用原理当滚动列表时,部分UITableViewCell会移出窗口,U原创 2016-01-29 17:11:16 · 265 阅读 · 0 评论 -
UIViewController和UIView的关系
在此说明一下,这里是我自己根据视频学习摘要的笔记,如果有错误的地方希望大家能给予指点,谢谢。 视频为:传智播客2014年第四期3-6月份(MJ老师的视频) – 第一天课程笔记内容:每当显示一个新界面时,首先会创建一个新的UIViewController对象,然后创建一个对应的全屏UIView,UIViewConroller负责管理这个UIView。UIViewController就是UIVie原创 2015-12-30 13:42:30 · 721 阅读 · 0 评论