IOS疑难杂项录

1: 使用UINavigationController push一个新的controller的时候, 旧的ViewController的view上的元素总是会有一部分叠加在新的controller的view上,造成视觉混乱。————————由于创建controller 时,view默认的background color为透明色。(主要是当所有的view背景均显示为白色的时候,很难去发现这个背景色是透明的)只要讲这个背景色改成非透明色即可! 此问题只出现在IOS7及以上。


2:每次在运行xcode在真机上,或者archive打包的时间,都会弹出输入用户名和密码的框.

解决方法:

打开钥匙串访问,在“系统”中双击小钥匙。


3:在使用XIB作为view的加载项时,会出现

SimpleTable3[29418:11303] *** Terminating app due to uncaught exception ‘NSInternalInconsistencyException’, reason: ‘-[UIViewController _loadViewFromNibNamed:bundle:] loaded the “SimpleTableViewController” nib but the view outlet was not set.’

 很简单,时命名问题,view的名字和ViewController的名字太像,(HKViewController / HKView),以至于xCode认为是相关联的,只要把View名字换掉就可以。


4:ViewController从Xib加载后,在代码中修改Frame无反应 

解决方法查看xib里view是不是设置了自动布局 use auto layout。取消掉就可以了。  其中子视图AutoSizing的内部十字架全部取消,否则会变形.


5:icon图标取消高亮,解决在ios6下icon颜色变淡的问题

Supporting Files中的plist中在Information Property List和Icon files(iOS5)中的Primary Icon目录下添加

icon already includes gloss effects = YES;


6: tabbar会有默认的选中蓝色,无论是否设置选中为选中图片,都会有 

解决办法  tabBar setSelectedImageTintColor:选中的颜色色值


7:Block两点注意:

1.block 的循环引用(retain cycle)

2.去除block产生的告警时,需注意问题。

非ARC:在Block中访问自身的属性,会retain自身造成内存泄漏,解决这种循环引用问题。就是在变量前面加个__block。

ARC:不是简单的在变量前面加个__weak,这时还会告警,说这是一个WEAK变量,就马上会被release。因此还未到执行block中的内容就已经被释放,解决这种循环引用问题 方法:__weak typeof(CustomCell) *weakCell = cell;  


8: 支持HTTP请求:

iOS9引入了新特性App Transport Security (ATS)。
新特性要求App内访问的网络必须使用HTTPS协议。
但是现在很多项目使用的是HTTP协议,现在也不能马上改成HTTPS协议传输,解决办法:


Xcode7:Info.plist中add Row添加NSAppTransportSecurity类型Dictionary


NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES

Xcode7.1中苹果更改了这项设定的名称

App Transport Security Settings下添加Allows Arbitrary Loads类型Boolean,值设为YES





持续更新中..........

9:UITabbar选中某个item是的图片设置问题

原始设置方法(These methods are now deprecated. Please use -initWithTitle:image:selectedImage:.) : 

- (void)setFinishedSelectedImage:(nullableUIImage *)selectedImage withFinishedUnselectedImage:(nullableUIImage *)unselectedImage

替代方法:

  1. UIImage *musicImage = [UIImage imageNamed:@"music.png"];  
  2. UIImage *musicImageSel = [UIImage imageNamed:@"musicSel.png"];  
  3.   
  4. musicImage = [musicImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];  
  5. musicImageSel = [musicImageSel imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];  
  6.   
  7. self.musicViewController.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Music" image:musicImage selectedImage:musicImageSel];  

注意 iOS7界面中的一个重要改变.设置UIImage的渲染模式:UIImage.renderingMode重大改变,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。 不加4和5项,导致选中图片无效果,要添加额外的代码才能生效。


10:一个View上面多个Button的点击事件互斥

解决方案: [button setExclusiveTouch:YES]


11: UIWebView修改加载页面的字体大小及其它属性

通过实现UIWebViewDelegate的- (void)webViewDidFinishLoad:(UIWebView *)webView来实现

复制代码
- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSLog(@"webViewDidFinishLoad");
    //字体大小
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '120%'"];
    //字体颜色
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'gray'"];
    //页面背景色
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.background='#2E2E2E'"];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值