美文网首页
ios-最近开发问题小结

ios-最近开发问题小结

作者: wszyxc | 来源:发表于2017-03-29 17:25 被阅读124次

    ios实用开发技巧:http://mobile.51cto.com/iphone-479249.htm

    1.控制器之间的灵活跳转:如果有A,B,C,D四个控制器,想要在A push B ,B 在 push 到 D,然后从D pop 到 C,在从C pop 到 A 的解决方案:

    思想:先Apush到B,再B push 到D,此时navigationcontroller的viewControllers中有[A,B,D],若想从D pop 到C,首先得这个数组里面有C这个控制器,可以考虑改变这个数组,但该数组系统默认的是不可变数组,我们可以创建一个可变数组tempArr,然后重点来了,就是利用一个方法 [self.navigationController setViewControllers:tempArr animated:YES]; 重新设置导航控制器的控制器数组.至于可变数组的操作,这里就省略了.

    2.解决不合法的网络请求地址,当URL中包含了ASCII 字符集,汉字时,使用时必须要进行转义:

    NSString * urlString = [kWebsite stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

    3.SVN 忽略文件:

    svn默认是忽略.a文件的,那如何在mac上传.a文件呢?

    这个方法是通过修改svn配置文件,在终端输入:

    open ~/.subversion/config

    在配置文件中查找[auto-props],在[auto-props]上面添加:

    global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store

    4.如何修改MJRefresh的下拉刷新控件的位置.

    [header setIgnoredScrollViewContentInsetTop:-50];

    5.加载webView时内存消耗过多

    http://blog.csdn.net/kongu/article/details/46878623

    6.带进度条的webview控件 :支持cocoaPods

    demo下载地址:https://github.com/chausson/CHWebView

    文档说明:https://github.com/chausson/CHWebView/tree/master/ChineseMd

    7.cocoaPods常见问题解决:http://blog.csdn.net/wangyanchang21/article/details/51437934

    8.tabBarController的第三方, 方便增加加号按钮:CYLTabBarController

    9.正式版状态下对NSLOG信息的屏蔽功能

    a.在PCH文件中增加如下代码

    #ifdef DEBUG

    #define NSLog(...) NSLog(__VA_ARGS__)

    #define debugMethod() NSLog(@"%s", __func__)

    #else

    #define NSLog(...)

    #define debugMethod()

    #endif

    b.在 "Target > Build Settings > Preprocessor Macros > Debug" 里有一个"DEBUG=1"。

    c. 设置为Debug模式下,Product-->Scheme-->SchemeEdit Scheme

    设置Build Configuration成Debug时,就可以打印nslog了。

    设置Release,发布app版本的时候就不会打印了,提高了性能

    10.AFN3.0 进行图片上传  http://blog.csdn.net/a645258072/article/details/51728806

    11.https:获取cer证书

    终端输入如下命令:

    openssl s_client -connect www.baidu.com:443 /dev/null | openssl x509 -outform DER > https.cer

    openssl s_client -connect kyfw.12306.cn:443 /dev/null | openssl x509 -outform DER > https.cer

    12.自定义返回按钮会造成返回手势不能使用,解决方法

    ///处理自定义返回按钮后不能侧滑

    @interface RootNavigationController : UINavigationController

    @end

    @implementation RootNavigationController

    - (void)viewDidLoad {

    [super viewDidLoad];

    self.interactivePopGestureRecognizer.delegate = self;

    }

    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {

    if (self.childViewControllers.count == 1) { return NO; } return YES;

    }

    13.在xib中,在button的菜单栏中取消 Hilighted Adjusts Image选项,能够 取消按钮被长按变灰的效果

    14.自定义view,如果重写了 initWithFrame,而在这个方法里面调用的是传入的frame,那么外面初始化的时候必须给定frame,否则可能出现意料不到的状况.

    15.重写导航控制器的 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated  可以拦截push操作,然后就可以在push的时候做一些我们自己想做的事情

    16.如何自定义导航控制器,实现可以定制每个页面的导航栏, 包括设置导航条的透明度、颜色、以及渐变色。并且支持全屏右滑返回手势

    http://www.jianshu.com/p/88bc827f0692

    17.iOS scrollView 如何约束实现 固定宽度 动态高度?  http://www.cocoachina.com/ios/20150923/13451.html

    18.如何获取tableView中内容的高度,可以给tableView添加一个tableFooterView,然后获取tableFooterView 的y值即可

    19. webview加载html的标签内容  http://www.cnblogs.com/jiww/p/5643041.html

    20.在html文件中图片的位置,记住千万不要设置成绝对路径。直接src="xxxx.png"就OK了,图片格式无所谓。在html中,引用图片要写成src="image01.png"这样,类似src="1%E6%A0%B8%E6%AD%A6%E5%99%A8_files/image001.png"这样是不行的,而且你要把html文件放在项目里。但是直接给网络地址是可以的.

    21.iOS报错[__NSCFNumber length]: unrecognized selector sent to instance出现这种报错很大的原因是因为类型给错了,或许你这个数据是从json上解析后得到的,但是需要看一下这个数据是NSString还是NSNumber类型,如果是NSNumber类型的话,你又直接使用NSString类型的变量去接收他,那么肯定会报这样的错误,所以一定要注意数据的类型

    22.当需要使用popToRootViewController跳转到首页时,有时会发现跳到的tabBarController的selectedViewController并不是第一个控制器,而是其他的,这个时候可以在方法前先设置self.tabBarController.selectedIndex = 0;这样就可以跳转到首页了,但是会发现tabBar被隐藏了,此时有个很巧妙的办法就是追溯到上一步,就是从 主控制器(带tabBar页面的控制器),push的时候,push之前先设置shopCarVC.hidesBottomBarWhenPushed = YES;push的代码之后在设置shopCarVC.hidesBottomBarWhenPushed = NO;这样就可以解决tabBar消失的问题了.

    23.错误:Assertion failure in -[MASViewConstraint install]        -----控件没有添加到视图就是用masonry了

    24 :底部视图直接用frame设置的情况下,在手机开启热点后,底部视图会往下偏一点,解决办法是将底部视图改为约束设置

    25. error: linker command failed with exit code 1

    原因:新建的控制器的名字和原有的控制器重名

    还有以下两种情况可能会导致这种错误的发生:

    一:项目中重复导入了某些文件.,这个一般在导入三方库时可能会重复导入.

    解决办法:只需要在文件目录中查找到重复导入的文件,删掉即可,或者将整个三方库删除掉,重新导入,或者用cocopods导入.

    二:在项目的某些地方需要#import"XXXX.h"而#import"XXXX.m".

    26.CUICatalog: Invalid asset name supplied: (null)

    UIImage imageNamed..后面的图片资源已经被删除了

    相关文章

      网友评论

          本文标题:ios-最近开发问题小结

          本文链接:https://www.haomeiwen.com/subject/apcyottx.html