1.

解析详情页(是webView)遇到的3个问题:

1.图片太大,超出屏幕范围

2.怎么在webView上面添加一行文字

3.文字太小

1.解决方法

webView.scalesPageToFit =YES;

2.字符串拼接html代码

3.解决方法

设置代理

- (void)webViewDidFinishLoad:(UIWebView *)webView{

[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '250%'"];

}

2.

去掉状态栏

在要隐藏的控制器里的viewWillAppear里添加:

if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {

[self prefersStatusBarHidden];

[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];

}

再添加prefersStatusBarHidden方法

- (BOOL)prefersStatusBarHidden

{

return YES;//隐藏为YES,显示为NO

}

3.

高德地图显示附近信息,设置范围后还是20条数据,原因是默认是20条,最多50条,大于50条信息会放在下一页。

//设置默认条数

request.offset = 50;

//设置显示页数

request.page = 1;

4.

github部分电脑上传到本地过程中未能正常上传,不能显示工程(解决方 法为显示隐藏文件,删除自带git文件.原因:xcode7 自带git 导致导入过程中默认为已经导入github)

5.

1.合并的时候发生冲突

打开存在冲突的文件,会看到如下标志:

<<<<<<<标记冲突开始,后面跟的是当前分支中的内容。

HEAD指向当前分支末梢的提交。

=======之后,>>>>>>>之前是要merge过来的另一条分支上的代码。

>>>>>>>之后的跟的是要合并过来的分支的名称

6.

*** Terminating app due to uncaught exception ‘NSGenericException’, reason: ‘*** Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.’

当程序出现这个提示的时候,是因为你一边便利数组,又同时修改这个数组里面的内容,导致崩溃,网上的方法如下:

NSMutableArray * arrayTemp = xxx;

NSArray * array = [NSArray arrayWithArray: arrayTemp];

for (NSDictionary * dic in array) {

if (condition){

[arrayTemp removeObject:dic];

}

}

这种方法就是在定义一个一模一样的数组,便利数组A然后操作数组B

7.

让tableView的头视图跟着tableView一起滑动

需要将tableViewController中的tableView样式改为grouped的,因为tableView默认的样式是plain,在tableViewCotroller中重写initWithStyle方法

方法1:

//重写init方法,将tableView的样式设为group的样式,区头就会跟着滑动了 最好不要重写 否则 全变成Grouped样式 可在初始化时候设置样式

-(instancetype)initWithStyle:(UITableViewStyle)style{

if (self = [super initWithStyle:UITableViewStyleGrouped]) {

return self;

}

return self;

}

方法2:修改tableView的位置

- (void)loadHeaderImage

{

CGFloat offest = 120;

self.tableView.contentInset = UIEdgeInsetsMake(offest, 0, 0, 0);

self.imgVIew = [[UIImageView alloc] init];

self.imgVIew.frame = CGRectMake(0, -offest, kScreenWidth, offest);

self.imgVIew.image = [UIImage imageNamed:@"image090"];

[self.tableView addSubview:self.imgVIew];

}

UIEdgeInsets UIEdgeInsetsMake (

CGFloat top,

CGFloat left,

CGFloat bottom,

CGFloat right

);

8.

1.

// 去掉cell横线

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

2.

//  点击单元格的时候取消选中单元格

//  点击单元格的时候取消选中单元格                                                 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

[self.tableView deselectRowAtIndexPath:indexPath animated:YES];

}

9.

1、错误描述:Xcode重装后,导致cocopods执行安装第三方时出错

错误信息:xcrun: error: active developer path ("/Users/apple/Desktop/Xcode5.app/Contents/Developer") does not exist, use xcode-select to change

解决方案:命令行输入:sudo xcode-select -switch /Applications/Xcode2.app/Contents/Developer

备注:Xcode2为新装Xcode的名称

10.

searchBar搜索拼接中文,需要转换utf8编码

NSString *typeString = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,(__bridge CFStringRef)(需要转换的文字),NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8);

11.

定义tableView上方有一条多余白框 (原因,系统默认给的可滑动距离,用如下方法解决去除)

self.automaticallyAdjustsScrollViewInsets = NO;

12.

This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes.  This will cause an exception in a future release

集合视图加载完数据以后.必须要调用reloadData方法刷新视图,否则程序会崩溃,因为item的个数为第一次运行的个数, 且因为后面的不会走创建item个数的方法,如果刷新后,会走这个方法,这样就避免了item与数据的不对应

13.

当collectionView的内容没有超过collectionView的大小时,如果想让collectionView始终滑动,则可以设置alwaysBounceVertical的值为YES

14.

可视化自适应cell高度的时候,如果多个控件需要自适应,最后一个控件需要四个约束

自适应代码:

self.tableView.rowHeight = UITableViewAutomaticDimension;

self.tableView.estimatedRowHeight = 100;

15.

问题描述:tableView初始加载无数据时,不想显示单元格线

解决方案:当tableView加载完毕时,调用如下方法

//tableView参数为要隐藏单元格线的tableView

-(void)setExtraCellLineHidden: (UITableView *)tableView

{

UIView *view = [UIView new];

view.backgroundColor = [UIColor clearColor];

[tableView setTableFooterView:view];

}

16.

.LeanCloud Pointer类型关系中属性的获取

解决方法:LeanCloud只会返回id,不会返回属性,要在需要的时候自己查询匹配再使用

17.

实现拖动列表时放大列表顶部的图片,在集合视图上添加该视图后,视图图片会遮挡住区头视图的内容.

解决办法:

将图片视图的contentMode属性设置为UIViewContentModeScaleToFill,使图片视图的大小随着自己设置的frame缩放.

UIViewContentMode 是UIView的属性

默认是UIViewContentModeScaleToFill

UIViewContentModeScaleToFill,//图片内容随着图片视图的frame进行缩放,图片可能会变形

UIViewContentModeScaleAspectFit,//保证图片比例不变,而且全部显示在图片视图上,但图片视图可能会有空白

UIViewContentModeScaleAspectFill,//图片比例不变,而且填充整个图片视图,根据原图片的大小填充视图

UIViewContentModeRedraw,通过设置contentMode属性值为UIViewContentModeRedraw。那么将在每次设置或更改frame的时候自动调用drawRect:方法

ter下面这几个属性就是设置图片视图的内容是在顶部还是底部之类的位置,按字面意思就可以理解

UIViewContentModeTop,

UIViewContentModeBottom,

UIViewContentModeLeft,

UIViewContentModeRight,

UIViewContentModeTopLeft,

UIViewContentModeTopRight,

UIViewContentModeBottomLeft,

UIViewContentModeBottomRight,

UIViewContentModeBottom,

UIViewContentModeLeft,

UIViewContentModeRight,

UIViewContentModeTopLeft,

UIViewContentModeTopRight,

UIViewContentModeBottomLeft,

UIViewContentModeBottomRight

18.

.github上传代码通过cocopods导入第三方,下载后有人工程报错 显示引入包的头文件找不到

用 cocoaPods 添加第三方库, 成功之后,在工程中却导入不了头文件,而且根本没有提示,

那么,我们就在 TARGETS --> Build Settings —> User Header Search Paths 中 添加 ${SRCROOT}  , 并把 no-recursive 改为 recursive

19.

遇到一坑:  数据解析正确,model(数据模型)中的属性等都正确 在控制器中去赋值,却没有值,打断点发现根本没有走model(数据模型)中  .m  文件的setValue:(id)value forUndefinedKey:(NSString *)key的方法

原因: 因为调用解析数据的方法时,使用了 block 方法传值, block方法在执行的顺序上  是先执行大括号外面的,然后再走block块大括号内部,如果在block外面写赋值,那么值就是空的,因为值还没传递出来,所以这时候要把赋值方法放在block内部,值就可以顺利传递了!

20.

project.pbxproj合并冲突问题

由于目录结构修改导致冲突(新增文件等)

合并之后导致工程无法打开

解决方法

打开project.pbxproj文件

查找类似<<<<<<<<,++++++++,>>>>>>>>所在的行

找到之后删除整行

保存

21.

button内部有imageView和titleLabel两个控件,按钮的内边距分为content(整体)、title(标题)、image(图片)三个,因此对于水平排布,可以通过内边距和修改控件坐标两种方式实现;而竖直排布只能通过修改坐标,因为UIButton默认的是水平排布。

22.

.解析的数据去掉html标签

- (NSString *)filterHTML:(NSString *)html{

NSScanner * scanner = [NSScanner scannerWithString:html];

NSString * text = nil;

while([scanner isAtEnd]==NO)

{

//找到标签的起始位置

[scanner scanUpToString:@"<" intoString:nil];

//找到标签的结束位置

[scanner scanUpToString:@">" intoString:&text];

//替换字符

html = [html stringByReplacingOccurrencesOfString:[NSString    stringWithFormat:@"%@>",text] withString:@""];

}

//    html = [_message stringByReplacingOccurrencesOfString:@" " withString:@""];

//            NSString * regEx = @"<([^>]*)>";

//            html = [html stringByReplacingOccurrencesOfString:regEx withString:@""];

return html;

}

23.

网络请求的图片,需要实现点击响应控制器跳转的事件,并且跳转的页面需要得到上个页面网络请求来的图片,对其进行操作,这时使用block传值的同时需要对imageView进行copy,否则点击图片跳转第二个页面在返回第一个页面会造成第一个的图片消失,解决问题的具体代码:- (UIImageView*)duplicate:(UIImageView*)view

{

NSData * tempArchive = [NSKeyedArchiver archivedDataWithRootObject:view];

return [NSKeyedUnarchiver unarchiveObjectWithData:tempArchive];

}

24.

引入友盟分享,从友盟官网下载,拖入项目,与COCOAPODS 冲突

使用 COCOAPODS  引入,虚拟机测试没有问题,真机无法测试

错误信息:

'Pods/UmengSocial/Umeng_SDK_Social_iOS_ARM64_4.3/UMSocial_Sdk_Extra_Frameworks/LaiWang/libSocialLaiWang.a(LWApiRequest.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决方法:

1.找到TARGETS下的Build Settings;

2.搜索Bitcode,设置为NO;

25.

cell重用问题,cell上的控件点击后改变状态或者值,当时有效,活动后出现错乱。

解决方案:用字典将点击的cell的row当成KEY值,状态或者值当成value存起来,在cellForRow方法里,根据字典里面的key值去设置对应的cell的状态或者值。

26.

tableView的header如果想设置高度为0,不能return 0,这时会有高度。可以设置成0.01。

27.

text 文本无法实现文字间距 可以使用 attributedText

//字间距

[attributedStr addAttribute: NSKernAttributeName value: @1 range: NSMakeRange(0, healthInformation.description_string.length)];

28.

定义static类型变量应该在本文件内使用,文件之间无影响,但是,可能会出现缓存问题报错,建议不要重复命名.显示错误不会正确提示,很难找

29.

const修饰的常量的值不能修改,同个工程中不能出现两个一样的常量名。

iOS开发小技巧的更多相关文章

  1. iOS开发小技巧 - UILabel添加中划线

    iOS开发小技巧 遇到的问题: 给Label添加中划线,然后并没有效果 NSString *str = [NSString stringWithFormat:@"合计金额 ¥%.2f&quo ...

  2. iOS开发小技巧 - runtime适配字体

    iOS开发小技巧 - runtime适配字体 版权声明:本文为博主原创文章,未经博主允许不得转载,有问题可联系博主Email: liuyongjiesail@icloud.com 一个iOS开发项目无 ...

  3. iOS开发小技巧 -- tableView-section圆角边框解决方案

    [iOS开发]tableView-section圆角边框解决方案 tableView圆角边框解决方案 iOS 7之前,图下圆角边框很容易设置 iOS 7之后,tableviewcell的风格不再是圆角 ...

  4. iOS开发小技巧--即时通讯项目:消息发送框(UITextView)高度的变化; 以及UITextView光标复位的小技巧

    1.即时通讯项目中输入框(UITextView)跟随输入文字的增多,高度变化的实现 最主要的方法就是监听UITextView的文字变化的方法- (void)textViewDidChange:(UIT ...

  5. ios开发小技巧之提示音播放与震动

    在ios开发中,有时候我们需要频繁播放某种提示声音,比如微博刷新提示音.QQ消息提示音等,对于这些短小且需要频繁播放的音频,最好将其加入到系统声音(system sound)里. 注意: 需要播放的音 ...

  6. 【转】IOS开发小技巧

    1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [ ...

  7. iOS开发小技巧--字典和数组的中文输出

    一.在解析json数据的时候,得到的集合对象或者数组对象在用%@打印的时候回出现类似乱码的情况.如图: 在iOS中打印字典或者数组对象,系统会默认调用字典对象和数组对象的descriptionWith ...

  8. ios开发小技巧(转)

    1.通过下面方式可以获取图片的像素颜色点:- (void*)getImageData:(UIImage*)image{    void* imageData;    if (imageData == ...

  9. iOS开发小技巧--相机相册的正确打开方式

    iOS相机相册的正确打开方式- UIImagePickerController 通过指定sourceType来实现打开相册还是相机 UIImagePickerControllerSourceTypeP ...

  10. iOS开发小技巧--iOS键盘 inputView 和 inputAccessoryView

    iOS键盘 inputView 和 inputAccessoryView 1.inputAccessoryView UITextFields和UITextViews有一个inputAccessoryV ...

随机推荐

  1. js两个小技巧【看到了就记录一下】

    1.不声明第三个变量实现交换 ,b=; a=[b,b=a][];//执行完这句代码之后 a的值为2 b的值为1了 2.&&和||的用法 (学会了立马感觉高大尚了吧) ; //传统if语 ...

  2. 关于UIView的userInteractionEnabled属性

    关于UIView的userInteractionEnabled属性 如果父视图为ParentView包含一个Button,如果再ParentView上添加子视图ChildView,且ChildView ...

  3. 摘:JavaScript性能优化小知识总结

    原文地址:http://www.codeceo.com/article/javascript-performance-tips.html JavaScript的性能问题不容小觑,这就需要我们开发人员在 ...

  4. 【BZOJ】2823: [AHOI2012]信号塔

    题意 给\(n\)个点,求一个能覆盖所有点的面积最小的圆.(\(n \le 50000\)) 分析 随机增量法 题解 理论上\(O(n^3)\)暴力,实际上加上随机化后期望是\(O(n)\)的. 算法 ...

  5. IOS 蓝牙相关-BabyBluetooth蓝牙库介绍(4)

    BabyBluetooth 是一个最简单易用的蓝牙库,基于CoreBluetooth的封装,并兼容ios和mac osx. 特色: 基于原生CoreBluetooth框架封装的轻量级的开源库,可以帮你 ...

  6. Html5_禁止Html5在手机上屏幕页面缩放

    最近测试html5页面,发现默认都允许用户缩放页面,或者在屏幕双击放大或缩小.即相当于这样设置 <meta name="viewport" content="wid ...

  7. jquery dialog open后,服务器端控件失效的快速解决方法

    jquery dialog为我们提供了非常漂亮实用的对话框,比单调的alert.confirm.prompt好用很多. 在使用jquery与.net共同开发时,直接调用jquery dialog的op ...

  8. 基于Solr的HBase多条件查询测试

    背景: 某电信项目中采用HBase来存储用户终端明细数据,供前台页面即时查询.HBase无可置疑拥有其优势,但其本身只对rowkey支持毫秒级 的快 速检索,对于多字段的组合查询却无能为力.针对HBa ...

  9. 使用Privoxy做智能代理切换

    使用Privoxy做智能代理切换 You take the blue pill, the story ends, you wake up in your bed, and believe whatev ...

  10. HDU3732 背包DP

    Ahui Writes Word Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...