- 博客(39)
- 问答 (1)
- 收藏
- 关注
原创 NSUserDefaults
NSUserDefaults : 单例 整个程序中只有一个实例 可以让数据自由传递 数据永久保存可以存储的数据类型有: NSNumber(NSInteger, float, double), BOOL, NSData , NSString, NSArray, NSDictionary必须都是不可变的存储方法:NSString *str = @“sxxxfg”;NSUserD
2015-12-31 10:35:02
644
原创 UI测试
2、UITableView重用机制中,会将重用的cell放到哪种类型的集合中。答案:(B) A、NSMutableArray B、NSMutableSet C、NSDictionary D、NSMutableDictionary4、关于系统自带的UITableViewCell,以下说法正确的是:答案:(D) A、Cell基本组成:编辑、内容、辅助 B、编辑:
2015-12-15 17:22:40
456
原创 单例类的使用方法
为什么要创建单例类: 有些数据在整个程序运行过程中, 需要保持传值前后数据不变. 单例类特点:只初始化一次, 生命周期与整个程序运行周期相同.创建方法:#import @interface SinglePattern : NSObject/** * 用来存储联系人数据 */@property(nonatomic, retai
2015-12-11 09:47:40
581
原创 在视图中添加视频播放器 和 音频播放器
视频播放器 MPMoviePlayerController#import "RootViewController.h"#import @interface RootViewController ()@property(nonatomic, retain) MPMoviePlayerController *moviePlayer;@end
2015-12-11 09:34:27
999
原创 汉字转码为搜索框能识别的格式
汉字转码搜索时: NSString *str = @"你好"; NSString *urlStr = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//需要用urlStr输入到搜索栏中识别iOS9.0-> [str string
2015-12-11 09:32:34
416
原创 集合视图 UICollectionView
#warning 注意: 使用UICollectionView需要遵循两个协议, 和tableview类似/*UICollectionView 并不像UITableView, 可以添加tableHeaderView (头视图), 如果需要在集合视图的头部添加视图需要设置集合视图的偏移量, 再将视图添加到集合视图中.比如: 想在集合视图上边加一个轮播图,
2015-12-11 09:21:08
489
原创 UIPageControl 页码控制器
//UIPageControl主要用来控制分页, 通常和UIScrollView一起使用// UIPageControl *firstPageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(100, 100, 200, 100)];// // // firstPageControl.backg
2015-12-11 09:18:02
439
原创 网络编程 同步异步加载 SET POST
/** * 创建NSData类型对象,用来接收异步请求回得数据 */@property(nonatomic,retain) NSMutableData *asyData;@end@implementation ViewController/* gat和post的区别:
2015-12-08 09:38:32
352
原创 点击事件的参数问题
视图控制器的点击事件: 在该视图控制器的实现文件中实现该方法:-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event这里要简单说一下点击页面其他部分退出键盘的功能: 需要在上述方法中说明语句: [ self.view endEditing:YES ];按钮的点击事件:
2015-12-08 08:57:38
1482
原创 通过接口加载网络数据 (解析数据)
解析数据: 读取文件路径 (Students.txt)NSString *path = [[NSBundle mainBundle] pathForResource:@“Students” ofType:@“txt”];读取文件数据 NSData *data = [NSData dataWithContentsOfFile:path];XMLSa
2015-12-07 21:18:58
442
原创 加载第三方图片
1. 导入工程包: SDWebImage, 2. 该工程包下的文件为arc下的, 如果创建的文件为MRC下的, 那么需要将target中 Build Phases中的Complie Sources下搜索所有关键字为sd的文件 设置为: -fobjc-arc (即ARC)3.将UIImageView的图片设置为第三方图片: 需要引入头文件: #import "UIImageV
2015-12-07 21:17:26
318
原创 获取第三方图片
1. 导入工程包: SDWebImage, 2. 该工程包下的文件为arc下的, 如果创建的文件为MRC下的, 那么需要将target中 Build Phases中的Complie Sources下搜索所有关键字为sd的文件 设置为: -fobjc-arc (即ARC)3.将UIImageView的图片设置为第三方图片: 需要引入头文件: #import "UIImageV
2015-12-07 21:06:49
409
原创 跳转视图的响应方法 viewDidAppear/ viewDidDisAppear
//由其他视图控制器跳转到该页面时,执行该方法. #pragma mark 视图显示的时候执行, 并且可以多次执行-(void)viewDidAppear:(BOOL)animated{ //self.tabBarController.tabBar.hidden = NO; // self.hidesBottomBarWhenPushed = Y
2015-12-07 20:55:54
411
原创 键盘右下角的return按钮的点击事件 & 点击屏幕收回键盘
textfield 点击return事件需要先遵循协议-(BOOL)textFieldShouldReturn:(UITextField *)textField{}点击屏幕其他位置, 收回键盘在AppDelegate.m中:-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)even
2015-12-07 20:40:23
450
原创 跨框架 定义属性
#import在继承自NSObject类的类中使用UI框架, 需要引入上边的文件比如: 在Person类定义一个UILabel类型的属性asfPerson.h:#import #import @interface Person :NSObject@property(nonatomic
2015-12-07 20:13:11
1599
原创 KVO 键值监听者
KVO (key-value-observer) (键值监听者)通过给一个对象添加观察者, 来监听这个对象的某个属性发生的变化专门指派一个observer(监听者)用来监视某个属性的状态变化.可以设置监听该属性的多个状态比如: 新值, 老值...运用场景: 通过比较新值和老值 如果发生变化则进行某些操作[self.person addObse
2015-12-07 20:02:25
367
原创 获取英文字符串的首字母和汉字字符串的拼音首字母
//获取拼音首字母(传入汉字字符串, 返回大写拼音首字母)- (NSString *)firstCharactor:(NSString *)aString{ //转成了可变字符串 NSMutableString *str = [NSMutableString stringWithString:aString]; //先转换为带声调的拼音 CFStri
2015-12-07 19:54:52
540
原创 屏幕上的视图自动变换颜色, 用UISlider表示颜色变换进度
-(void)changeColor{ self.view.backgroundColor = [UIColor colorWithRed:arc4random() %256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1]; UISlider *new = (UISlider *
2015-12-07 19:49:28
470
原创 设置和获取按钮的背景图片
//设置按钮的背景图片 图片填充按钮button setBackgroundImage:(UIIamge imageName:(..))设置之后图片会自动填充按钮大小.//获得当前的按钮背景图片button.currentBackgroundImage //另一种在按钮上设置图片的方法:button.ba
2015-12-07 19:39:38
978
原创 标签视图控制器 UITabBarController [高度: 49]
导航栏高度: 44 (navigationBar)导航栏上边: 20 标签栏高度: 49 (tabBar) //标签视图控制器(UITabBarController) :主要用来管理具有不同功能并且属于同一层级结构的多个视图控制器. (比如: 电影推荐页面 -> 演出页面) 区别: 导航视图控制器(UINavigationCont
2015-12-07 19:24:19
812
原创 获得当前屏幕宽和高 [UIScreen mainScreen].bounds.size
bounds: 边界UIScreen: 屏幕//主屏幕宽#define kWidth [UIScreen mainScreen].bounds.size.width//主屏幕高#define kHeight [UIScreen mainScreen].bounds.size.height
2015-12-07 19:13:06
1055
转载 CocoaPods使用说明
CocoaPods使用说明cocoaPods本身的更新(即为重新安装,之前已经配置过了,就直接再执行一遍, sudo gem install cocoapods)cocoaPods的使用:1,在Terminal中访问到当前Project, cd ~/地址2,pod init //创建一个podfile文件3,open -a Xcode Podfile
2015-12-07 19:05:43
270
原创 堆区和栈区的区别 & 页面间传值
栈区中存放数据的特点是: 由计算机自动分配和释放内存, 在指定范围内就释放掉了, 操作简单, 但是不灵活, 容易产生野指针异常(指针指着一块已经释放掉得内存, 这时这个指针就是野指针)), 优点是占内存空间小. 操作简单.堆区中存放数据的特点是: 由工程师手动分配和释放内存, 优点: 操作灵活, 能够完全掌控内存信息, 不用担心野指针异常问题. 缺点: 操作复杂, 对工程师技术要求较高. 并且容易产生内存碎片. 占用内存空间大.
2015-12-01 20:21:11
400
原创 UINavigationController属性 & 导航栏透明度影响下边子视图的原点位置
//UINavigationController 导航视图控制器, 是用来管理视图控制器的控制器#warning 注意:每个导航视图控制器, 至少有一个视图控制器 RootViewController *root = [[RootViewControlleralloc]init]; UI
2015-12-01 19:25:26
2165
原创 切换视图控制器时将标签栏隐藏
FirstViewController 和 SecondViewController 都属于同一个的UINavigationController(导航控制器), 这个导航控制器是UITabBarController(标签栏)的某一项.如果想要在FirstViewController中跳转到SecondViewController中. 还不想让SecondViewController中显示标
2015-12-01 19:17:37
571
原创 iOS如何在工程中使用第三方(网络)图片
1. 首先, 需要将第三方的文件包导入到现在的工程中2.在需要使用第三方图片的视图控制器的实现文件中导入文件: #import "UIImageView+WebCache.h"3.设置当前文件的TARGETS中第一项中的Build Phases中Compile Sources中将除了本文件中的都选中, 双击将这些文件Compiler Flages设置为: -fobjt-
2015-11-30 17:25:28
511
原创 UINavigationController设置导航栏属性
//UINavigationController 导航视图控制器, 是用来管理视图控制器的控制器#warning 注意: 每个导航视图控制器, 至少有一个视图控制器 RootViewController *root = [[RootViewController alloc]init]; UINavigationControll
2015-11-28 17:43:12
530
原创 多种自定义Cell混合
多种自定义Cell混合使用场景: 在一个tableView中, 要显示不同形式的单元格. 这些单元格是根据数据中的某个属性来区分的.例如: 通讯录中, 性别为男的左边显示图片, 性别为女的右边显示图片. 方法: 自定义MaleTableViewCell和FemaleTableCell两种风格的Cell在-(UITableViewCell *)tabl
2015-11-28 16:12:33
499
原创 单例类的使用方法
单例类是为了实现在类和类之间传值的过程中保持数据不变创建一个继承自NSObject类的类: SinglePatternSinglePattern.h: #import @interface SinglePattern : NSObject//单例类中创建一个属性, 用来存放需要保持传值过程不变的数据/** * 用来存储联系人数据 */@pr
2015-11-28 15:53:30
344
原创 自定义UITableViewCell类 && 自适应高度
自定义 UITableViewCell类1.继承自UITableViewCell的MyTableView比如:制作显示名片的表格视图 要显示一张图片 5个UILabel类型, 其中的爱好属性需要根据文本多少自适应出对应Label的高度.第一步: 将单元格中需要显示的内容设置成属性MyTableView.m中: /** * 用来显示图片
2015-11-27 20:18:50
366
原创 Objective-C 重写set方法
#pragma mark 重写Model的setter方法, 来给当前单元格上的子视 图赋值在set方法里给单元格的子视图赋值, contact是UITableViewCell的一个属性, contact在初始化时是没有值的, 需要在创建单元格的同时给self. contact赋值, 这时保证self.contact是有值的, 有值的同时也就是set方法中, 将contact的值进行处理, 保
2015-11-27 20:16:47
3070
原创 鼠标拖动视图
在MyView.h中定义两个属性, 用来接收移动前的点坐标, 和移动后的点坐标.@property(nonatomic,assign) CGPoint startPoint;@property(nonatomic,assign) CGPoint endPoint;MyView.m: -(void)tou
2015-11-19 20:59:08
365
原创 TargetAction模式
Target Action模式体现了iOS的编程思想: 高内聚, 低耦合. 降低了耦合度.将要完成的功能单独写成一个方法, 在日后需要修改时可以清晰简单化很多步骤. 使程序变得条理清晰.不立即执行方法, 可以指定不同的对象在你想执行方法的时间执行方法.在合适的时间做合适的事GDView.h中定义两个属性, 用来接收ta
2015-11-19 20:54:49
395
原创 响应者链和 UILabel的userInteractionEnabled属性
1. 系统检测到触摸操作, 将消息发送给UIApplication, 开始检测.2. UIApplication查看发生触摸操作的位置是否还有子视图, 有得话, 继续查找子视图在该位置是否还有子视图, 依次向下, 直到找到最后一个子视图, 将该视图视为该触摸事件的响应者. 完成响应者链的查询过程. 顺序如下: UIApplication -> window -> ViewController -> view -> view 的子视图 -> ......3. 判断该响应者是否具有处理该触摸事件的
2015-11-19 19:25:47
1171
原创 UI第一节: UIView s和 UILabel
一. 使用Xcode创建一个文件file -> new -> Project -> iOS Application -> Empty Application 2.为了手动分配内存, 需要将该项更改为NO.3. 在AppDelegate.m中, 定义属性, 因为属性是全局性的, 可以该文件中的任意方法中使用, 如果只在某方法中定义变量, 那么该变量为局部变量,
2015-11-13 20:41:16
558
原创 OC错题总结
19、声明一个方法:提供Student对象数组按照学号升序排列的判断条件:答案:(A) A、-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudent B、-(NSInteger)compareWithNumberForAscendSort:(Student*)otherStudent C、-
2015-11-12 20:57:49
549
原创 OC的内存管理方式----MRC & ARC
首先介绍一下垃圾回收机制: 只需要开辟内存空间, 由系统自动回收垃圾内存.oc中有两种内存管理方式: 1.MRC 2.ARC一. MRC (Menual Reference Count : 手动引用计数) 内存的开辟和释放都有代码控制. 优点: 对内存的管理更加灵活, 可以在需要释放内存空间的时候及时释放内存. 对程序员的能力要
2015-11-11 20:51:18
548
原创 OC中删除字符串中相邻重复字符
//方法1: 直接在可变字符串上操作, 不返回新字符串//方法2: 遍历字符串, 如果和前一个字符不相等, 就将该字符拼接到一个可变字符串中
2015-11-04 13:34:15
813
空空如也
OC中删除字符串中相邻的重复字符
2015-11-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人