iOS 开发中的坑与相关技巧

1、 界面切换部分: 当一个界面中不包含NavigationBar的时候但是要其跳转到另一个包含NavigationBar的界面的情况下,要进行NavigationBar的展示和隐藏的情况下设置不同的界面的逻辑,此时设置的不当的话会造成侧滑切换界面的间隙会造成NavigationBar的标题栏的短暂隐藏,所以在控制其隐藏的时候需要注意一下,可以在需要隐藏的界面做以下设置:

- (void)viewWillAppear:(BOOL)animated {
    [self.navigationController setNavigationBarHidden:YES animated:animated];
    [super viewWillAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated {
    [self.navigationController setNavigationBarHidden:NO animated:animated];
    [super viewWillDisappear:animated];
}

界面展示部分: 当应用中集成了连通视频的功能时,当连通了视频之后会导致整个界面下降20个像素如下图1.1所示:

图1.1

其展示场景为:当由主界面跳转到连接视频的界面时,跳转方式采用presentViewController 的形式,当视频连通后再返回主界面就会造成了上述情况。

原因:连通视频后voiceIP的连通使得界面向下偏移,通过采用

[self.webView.scrollViewsetContentInset:UIEdgeInsetsZero];等一些针对ios7.0以上的方法均无效。故采用另一种方式进行视图的切换。由原来的

presentViewController 改成使用NavigationController pushViewController的方式进行切换界面并且如果该界面涉及到多种方式的跳转,还要在返回的按钮出进行判断当前的ViewController是push还是present的方式显示的。因为要根据不同的进入方式,切换相应的退出模式。判断方法如下:

(1)通过判断self有没有present方式显示的父视图

-(void) backAction {

        if (self.presentingViewController) {
             [self dismissViewControllerAnimated:YES completion:nil];
       } else {
             [self.navigationController popViewControllerAnimated:YES];
    } 

}

(2)通过判断self.navigationController.viewControllers的最后一个是否是当前控制器,或者self.navigationController.topViewController == self

-(void) backAction {

         if (self.navigationController.topViewController == self) {
        [self.navigationController popViewControllerAnimated:YES];
    } else {
        [self dismissViewControllerAnimated:YES completion:nil];
    }

}

2、逻辑处理部分

(1)当tableView的cell点击方法失效时,查看是否在tableView上添加了手势

(2)添加友盟统计时:统计按钮的点击事件的时候,可以写一个button的分类,分类里利用关联的对象给button增加一个记录的方法,捕获sender发送的action并进行处理,在拦截的方法里做相关的统计操作即可,同理,设置页面统计的时候直接对相关的rootVC即在根视图页面进行统计,统计的标识是通过[self class]作为区分即可。

(3)当获取的URL中包含相应的中文字符的时候,尤其是在SD_WebImage加载相应的图片的时候,此时如果路径被转义就会造成一个现象,图片的地址无法加载,解决的方式就是将网址进行UTF8的编码:案例如下:

        NSString * urlString = @"https://www.baidu.com/baidu?tn=monline_3_dg&ie=utf-8&wd=%E9%92%A2%E7%90%B4";

       NSString *str = [urlString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

打印的结果如下:

时间: 2024-12-31 16:43:57

iOS 开发中的坑与相关技巧的相关文章

文顶顶 iOS开发UI篇—IOS开发中Xcode的一些使用技巧

iOS开发UI篇—IOS开发中Xcode的一些使用技巧 一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文件 视图 option + cmd + 回车 打开助理编辑器 cmd + 回车           显示主窗口 cmd + 0             导航窗口 option + cmd + 0    工具窗口 在.m & .h之间切换           control + cmd + 上/下 按

iOS开发UI基础—IOS开发中Xcode的一些使用技巧

iOS开发UI基础-IOS开发中Xcode的一些使用技巧 一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文件 视图 option + cmd + 回车 打开助理编辑器 cmd + 回车           显示主窗口 cmd + 0             导航窗口 option + cmd + 0    工具窗口 在.m & .h之间切换           control + cmd + 上/下

iOS开发中的UIWebView的一些技巧

很久没写博客了,今天终于闲来有时间,总结下这段时间遇到的UIWebView上的一些小技术问题.UIWebView是iOS sdk中一个最常用的控件.是内置的浏览器控件,我们可以用它来浏览网页.打开文档等等.但有时我们会遇到一个问题,就是如何实现点击webView加载的图片以放大浏览,这其中就要用到JavaScript脚本语言,这里要想进行Objective-C与JavaScript的交互操作,就需要使用oc中的 stringByEvaluatingJavaScriptFromString:方法,

iOS开发UI篇—iOS开发中Xcode的一些使用技巧

一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文件 视图 option + cmd + 回车 打开助理编辑器 cmd + 回车           显示主窗口 cmd + 0             导航窗口 option + cmd + 0    工具窗口 在.m & .h之间切换           control + cmd + 上/下 按照浏览文件的前后顺序切换     control + c

IOS开发中Xcode的一些使用技巧

一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文件 视图 option + cmd + 回车 打开助理编辑器 cmd + 回车           显示主窗口 cmd + 0             导航窗口 option + cmd + 0    工具窗口 在.m & .h之间切换           control + cmd + 上/下 按照浏览文件的前后顺序切换     control + c

OS开发UI篇—IOS开发中Xcode的一些使用技巧

一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文件 视图 option + cmd + 回车 打开助理编辑器 cmd + 回车           显示主窗口 cmd + 0             导航窗口 option + cmd + 0    工具窗口 在.m & .h之间切换           control + cmd + 上/下 按照浏览文件的前后顺序切换     control + c

iOS开发中的总结的小技巧,分享给大家!!(待续未完)

这是我在写项目或者学习知识点或者请教人家的时候总结的小技巧 原来是写在笔记本上面的,还是分享给大家了.可能会很乱,觉得对自己有用的就拿走吧,有错漏的地方也求大家指点修正.废话不多说直接来. 1. 监听控件的三种方法 1) addTarget 2)代理 3)通知 2. UITextfiled(文本框)中有一个属性:clearButtonMode 选择 UITextFieldViewModeAlways 就可以在输入多个字符后,右边有个x号点一下全部清除,用户体验会好一点. UITextField

iOS 开发中使用到的小技巧汇总

国庆即将来到,一个小项目也即将完成,把自己在项目中用的一些小技巧写出来,方便查找. 1,去掉分割线--动画设置透明度alpha //去掉tableView的分隔线: self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone; self.tableView.showsVerticalScrollIndicator=NO; 2. 解决cell分割线左边短20px的问题 -(void)viewDidLayoutSubviews{ i

iOS开发中遇到过的坑

iOS开发中遇到过的坑 前言 做iOS开发这么长时间以来,遇到过不少难题,也踩过不少坑,本来没想过要写这篇文章,但是鉴于以下三点,笔者决定对遇到过的并且还能回忆起来的问题做个记录. 每次问题解决后,满满的成就感,但是当下一次再遇到时,又是一脸懵逼.这个问题我好像见过,但就是不记得怎么解决,记录下来方便以后查阅. 每次面试的时候,面试官总会问我,你在开发中遇到过哪些问题,怎么解决的?问题嘛,挺多的,但是你要我叙述嘛,我......我......我居然一时想不起来,迷之尴尬????(面试官当时想法: