首页 > 代码库 > iOS 开发中的坑与相关技巧
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的连通使得界面向下偏移,通过采用
-(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];
打印的结果如下:
iOS 开发中的坑与相关技巧