Tomi_iOS开发周报(第一期)
2015-07-29 本文已影响0人
Tony_Qt
标签(空格分隔): ios 开发中的那些坑
[TOC]
一、UITableview 使用技巧分享
分享人:@钱萌丹 @官洋 @老戴
tableViewCell 选中后背景View更换
// 使用selectedBackgroundView 可设置tableViewCell选中背景
// 注意使用该属性的前提是,UITableViewCell的选中状态类型不能设置为UITableViewCellSelectionStyleNone
tableViewCell.selectedBackgroundView
cell下方分割线如何缩进
#pragma mark 设置tableview分割线到顶端
-(void)viewDidLayoutSubviews{
NSLog(@"%s",__FUNCTION__);
if ([self.mainTableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.mainTableView setSeparatorInset:UIEdgeInsetsMake(0,0,0,0)];
}
if ([self.mainTableView respondsToSelector:@selector(setLayoutMargins:)]) {
[self.mainTableView setLayoutMargins:UIEdgeInsetsMake(0,0,0,0)];
}
}
#pragma mark delegate
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
// 解决separator 线的缩进
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
// 解决tableViewCell 8像素缩进
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}
二、UIScrollView 使用技巧分享
分享人 : @李锐
如果想设置UIScrollView的偏移量?
scrollView.contentInset = UIEdgeMake(64, 0, 0, 0);
三、UIImage 使用技巧分享
分享人: @王孜
UIImage 之前加载使用的file删除,再次存储UIImage到文件失败
-
BUG出现描述
<Error>: ImageIO: CGImageReadCreateDataWithMappedFile 'open' failed '路径'
error = 2 (No such file or directory) -
BUG出现操作还原
-
从本地沙盒读取图片,加载到UIimageViews上。
-
删除沙盒里的图片。
-
将UIImageView里的图片保存到本地沙盒时,BUG出现。
- BUG出现原因解析与解决方法
原因:保存时,图片已经不存在了,所以保存失败。
解决方案:从路径读取图片后,先转换成NSData,再生成一张新的image,之后保存就OK。
// 正确做法
UIImage *tempImage = [[UIImage alloc] initWithContentsOfFile:filePath];
NSData *tempData = UIImagePNGRepresentation(tempImage);
UIImage *newImage = [UIImage imageWithData:tempData];
// 错误做法
UIImage *newImage = [[UIImage alloc] initWithContentsOfFile:filePath];