1、- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:
(NSInteger)topCapHeight 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度。
根据设置的宽度和高度,将接下来的一个像素进行左右扩展和上下拉伸。
注意:可拉伸的范围都是距离leftCapWidth后的1竖排像素,和距离topCapHeight后的1横排像素。
参数的意义是,如果参数指定10,5。那么,图片左边10个像素,上边5个像素。不会被拉伸,x坐标为11和一个像素会被横向复制,y坐标为6的一个像素会被纵向复制。
注意:只是对一个像素进行复制到一定宽度。而图像后面的剩余像素也不会被拉伸。
UIImage *img=[UIImage imageNamed:@"bubbleSelf.png"]; img=[img stretchableImageWithLeftCapWidth:15 topCapHeight:12]; UIImageView *imgView=[[UIImageView alloc]initWithImage:img]; [imgView setFrame:CGRectMake(10, 10, 200, 200)]; [self. view addSubview:imgView];
2、和我遇到的问题一样,直接复制的网上的。
不小心在开发过程中,得到了(null)以及<null>的,找了好长时间只找到了一个关于<null>的。
由于要根据进行判断,做出必要反应,因此必须知道所代表的具体字符,在得到(null)后利用isEqual:和@“”,NULL,@“(null)”,nil,Nil比较后均得不到正确结果,弄得不知所措了,但是还是感觉像nil,不得已,创建一个字符串,赋值为nil,打印输出,果然是(null),想不通的是为什么不等。最后试了一下“==”,成功了。费尽周折之后才明白原来要这样用:
if(m_result==nil)
{
NSLog(@"!");
}
还有就是<null>,从网上找到了用法:
if([m_result isEqual:[NSNUll null]])
{
NSLog(@"!");
}问题很简单,找不到原因解决就难了,不由感叹,基础最关键啊。
3、今天在自定义一个cell的时候,自定义cell上有一个按钮,写完之后,发现运行出来的界面上没有这个按钮,后来试了几次,发来可能是因为使用了懒加载的原因,于是试了一下,果然是这样。问了旁边的大神才知道,cell是一个View,他自己没有被用到的时候,他自己就不存在,所以要用懒加载的话只能写在控制器里面。
4、打包的时候,product->archive是灰色的,如果scheme->edit scheme改成release后还是灰色的,可能是选择的是模拟器,改成generic ios device 就可以了。
5、对字典中的key进行排序
NSArray *keys = [_paramsDic allKeys]; //按key排序 NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { NSComparisonResult result = [obj1 compare:obj2]; return result == NSOrderedDescending; //升序 }]; NSMutableArray *arr = [NSMutableArray array]; for (NSString *key in sortedArray) { id value = [_paramsDic objectForKey:key]; NSString *appendStr = [NSString stringWithFormat:@"\"%@\":\"%@\"",key,value]; [arr addObject:appendStr]; } //用","拼接数组内的字符串 NSString *arrStr = [arr componentsJoinedByString:@","]; NSString *paramsString = [NSString stringWithFormat:@"%@%@%@",@"{",arrStr,@"}"];
6、服务器要求传递的参数为json类型的字符串
1 NSString *urlStr = @"http://music.163.com/#/song?id=5086081"; 2 AFHTTPSessionManager *manager=[AFHTTPSessionManager manager]; 3 //发送json格式的请求参数-->虽然下面我们看似传的是一个字典,但是写了下面这句代码后,就会自动把字典参数转换为json格式的字符串类型的参数传给服务器 4 manager.requestSerializer=[AFJSONRequestSerializer serializer]; 5 //返回json格式的字符串 6 manager.responseSerializer=[AFJSONResponseSerializer serializer]; 7 NSMutableDictionary *dic = [NSMutableDictionary dictionary]; 8 dic[@"id"] = @"5086081"; 9 [manager POST:urlStr parameters:dic success:^(NSURLSessionDataTask *task, id responseObject) {10 NSLog(@"请求成功");11 } failure:^(NSURLSessionDataTask *task, NSError *error) {12 NSLog(@"请求失败");13 }];
7、获取图片的大小:
CGSize size= [UIImage imageNamed:@"jjsx"].size;
//path 图片的本地路径CGSize size=[UIImage imageWithContentsOfFile:path].size;
8、定位服务
// 判断的手机的定位功能是否开启 // 开启定位:设置 > 隐私 > 位置 > 定位服务 if ([CLLocationManager locationServicesEnabled]) { // 启动位置更新 // 开启位置更新需要与服务器进行轮询所以会比较耗电,在不需要时用stopUpdatingLocation方法关闭; [self.locationManager startUpdatingLocation]; }
// 判断的App的定位功能是否开启 CLAuthorizationStatus status = [CLLocationManager authorizationStatus]; if (kCLAuthorizationStatusDenied == status || kCLAuthorizationStatusRestricted == status) { NSLog(@"请前往设置开启app的定位功能"); }
询问是否开启定位功能 //1.需获取地理位置权限 //添加实例 _locationManeger = [[CLLocationManager alloc] init]; [_locationManeger startUpdatingLocation]; //询问用户,获得权限。会有一个弹窗,询问用户是否允许app获取当前地理位置 if (iOS8) { //使用应用程序期间允许访问位置数据 [locationManager requestWhenInUseAuthorization]; //始终允许访问位置信息// [locationManager requestAlwaysAuthorization];
}
具体定位步骤请参考:http://blog.devzeng.com/blog/ios8-corelocation-framework.html