小知识点总结
1、从服务器返回一个data类型的图片数据:
// 图片地址
NSURL* url = [NSURL URLWithString:@"http://www.baidu.com/img/baidu_sylogo1.gif"];
// 请求图片
NSData* data = [NSData dataWithContentsOfURL:url];
UIImage* image = [UIImage imageWithData:data];
// 去主线程刷新UI
self.imageView.image = image;
2、
<root xmlns:book="http://www.baidu.com" xmlns="http://www.sina.com.cn" id="1"/>
//添加命名空间
GDataXMLElement* ele = [GDataXMLElement elementWithName:@"root"];
[ele addNamespace:[GDataXMLElement namespaceWithName:@"book" stringValue:@"http://www.baidu.com"]];
//添加缺省命名空间
[ele addNamespace:[GDataXMLElement namespaceWithName:@"" stringValue:@"http://www.sina.com.cn"]];
//添加属性值
[ele addAttribute:[GDataXMLElement attributeWithName:@"id" stringValue:@"1"]];
3、判断是否为iphone5
CGFloat screenWidth = [[UIScreen mainScreen] bounds].size.width;
CGFloat screenHeight = [[UIScreen mainScreen] bounds].size.height;
if ((screenWidth==568)||(screenHeight==568)) {
isiPhone5 = YES;
}
4.iphone5宽高:320*568
CGFloat screenWidth = [[UIScreen mainScreen] bounds].size.width;
CGFloat screenHeight = [[UIScreen mainScreen] bounds].size.height;
5、打开系统小转圈
[UIApplication sharedApplication].networkActivityIndicatorVisible=YES;
关闭小转圈
[UIApplication sharedApplication].networkActivityIndicatorVisible=NO;
6、使得view可交互:
UIImageView* _imageView;
_imageView.userInteractionEnabled = YES;
7、沙盒路径:
方法一:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *imgPath = [documentsDirectory stringByAppendingPathComponent:@"loading.plist"];
方法二:
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/loading.plist"];
相对而言第二种方法比较简单 做了很久才理解这两种方法的区别
第一种方法可以直接获取到沙盒下Documents路径即AtIndex 0 取出的就是Documents的路径
第二种方法就是直接取出沙盒下的所有目录:Documents,temp,app,libiary
如果用第二种方法读取文件路径的时候,要把该文件对应的前一个目录写出来,想要写入到沙盒的时候也要加上前一个目录的路径,如果用第一种方法就可以不加前一个目录的路径
8、选择相册图片
//选择图片
UIImagePickerController* ipc = [[UIImagePickerController alloc] init];
ipc.delegate = self;
//来源
ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:ipc animated:YES completion:nil];
[ipc release];
代理:
//点击图片调用
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
_imageView.image = [info objectForKey:UIImagePickerControllerOriginalImage];
[picker dismissViewControllerAnimated:YES completion:nil];
}
//点击取消按钮调用
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
[picker dismissViewControllerAnimated:YES completion:nil];
}
9、把图片转为NSData格式:
NSData* data = UIImagePNGRepresentation(_imageView.image);
10、把自定义的按钮显示到导航栏上
UIButton *button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame=CGRectMake(0, 0, 40, 30);
[button setTitle:@"push" forState:UIControlStateNormal];
[button addTarget:self action:@selector(btnDown) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc] initWithCustomView:button];
11、如果在B页面修改了数据影响到A页面,并要立马在A页面体现出来,则应该:
-(void)viewWillAppear:(BOOL)animated
{
// 一进入这个VC立马刷新数据,使得数据立马能展现到cell上,
[_tableView reloadData];
}
12、为自定义按钮等自定义空间添加监听的时候,用到控制器的方法时候:应该先拿到控制器
// presentViewController方法是控制器的方法,如果是自定义的一些空间的话,首先需要拿到控制器,才能使用这个方法。
// 因为控制器展示在跟视图控制器上,因此我们只需要拿到跟视图控制器self.window.rootViewController
[self.window.rootViewController presentViewController:nav animated:YES completion:nil];
13、用pinyin4objc框架可以对拼音进行排序,例如把城市按字母排序
14、UIPopoverController
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:city];
// inView:是谁,小箭头则指向谁
// 这里属性有两种传法:1、self.bounds--self 2、self.frame--self.superview
[popover presentPopoverFromRect:self.bounds inView:self permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
_popover = popover;
注意:popover的箭头指向PopoverFromRect:self.bounds,必须要告诉self.bounds是 指的是谁,这里是self;或者是self.frame--self.superview,即:在父视图是 self.superview上得子视图位置为self.frame处显示小箭头
15、在searchBar上显示取消按钮
[searchBar setShowsCancelButton:YES animated:YES];
16、隐藏键盘:
[_searchBar endEditing:YES];
[_searchBar resignFirstResponder];
17、CocoaPods安装和使用教程(类库管理工具)
http://code4app.com/article/cocoapods-install-usage
18、在点击table上的cell后返回的时候设置颜色不反选:(在cell选中代理中设置)
[tableView deselectRowAtIndexPath:indexPath animated:YES];
19、从相机、相册等选择图片
UIImagePickerController* ipc = [[UIImagePickerController alloc] init];
ipc.delegate = self;
//来源
ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:ipc animated:YES completion:nil];
20、让UIscrollView只能实现左右滑动,不能上下滑动,把内容高度设置为0即可
self.scrollView.contentSize = CGSizeMake((kScreenH-40)*(pageCount-1),0); //(kScreenH-40)
21、
NSString *URLTmp = @”http://www.coneboy.com”;
NSString *URLTmp1 = [URLTmp stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; //转码成UTF-8 否则可能会出现错误UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDown:)];
[self.imageViews addGestureRecognizer:tap];
tags = imageViewTag;
- (void) tapDown:(UITapGestureRecognizer *) tap
{
tags = tap.view.tag;// 点击不同图片,获取不同图片的tag值。
ProductDetailViewController *product = [[ProductDetailViewController alloc] init];
product.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
product.picStr = tags;
[self presentViewController:product animated:YES completion:nil];
}
23、本地化:
“项目(蓝色 图标)”—》“info”—》Locations—》“+” chinese
24、数据转化为模型的方法:
NSDictionary *dict = _citysData[0];
1、把数据转化为模型(方法一)
CitySection *section = [[CitySection alloc] init];
section.name = dict[@"name"]; // 最复杂的转化为模型的方法
section.cities = dict[@"citys”];
2、 把数据转化为模型(方法二) KVC(效率低)
// 会取出dict中得每个key付给我们的section对象
// 即:先取出secton中得name属性,并赋值为dict中得name属性的值,再
// section中有name,citys属性
[section setValuesForKeysWithDictionary:dict];// 等同于与下面两句
[section setValue:dict[@"name"] forKey:@"name"];
[section setValue:dict[@"cities"] forKey:@"cities"];
3、#import <objc/message.h>
25、 把首字母大写
NSString *first = [key subStringToIndex:1].uppercaseString;
26、self.automaticallyAdjustsScrollViewInsets
这个属性是IOS7才有的新方法,目的就是为了让scrollView自动适应屏幕,
如果self.automaticallyAdjustsScro llViewInsets = NO,那么效果会变成下图所示:
self.asyImage.layer.masksToBounds = YES;
29、边框宽度及颜色设置[imageView.layer setBorderWidth:2];
[imageView.layer setBorderColor:[UIColor blueColor]]; //设置边框为蓝色
30、自动适应,保持图片宽高比
imageView.contentMode= UIViewContentModeScaleAspectFit;
31、在别的方法中获取cell
NSIndexPath *index = [NSIndexPath indexPathForRow:i inSection:0];
UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:index];
32、活动指示器
[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES];
33、便利字典cities (字典中得每一个block都会调用这一个block)
[cities enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
}];
34、把小写变为大写(忽略大小写就是这么干的)
searchText.uppercaseString
35、字符串截取SHI#JIA#ZHUANG
[pinyin componentsSeparatedByString:@"#”]; // 得到SHI ,JIA,ZHUANG数组
36、 去掉pinyinHeader所有#(用@“123”替代@“#”)
[pinyin stringByReplacingOccurrencesOfString:@"#" withString:@“123"];
未完待续