zoukankan      html  css  js  c++  java
  • 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];

    打印的结果如下:

        

     
  • 相关阅读:
    3、面向对象
    今日记事
    javascript 学习javascript高级程序设计
    数据库操作语言分类
    project遇到问题了。
    CentOS设置程序开机自启动的方法
    ECMAScript 基础 [完]
    CentOS 网络设置修改
    Spring Boot项目Circular view path问题解决
    数据库设计
  • 原文地址:https://www.cnblogs.com/windsSunShine/p/6869126.html
Copyright © 2011-2022 走看看