美文网首页
iOS开发过程中遇到的问题和解决方法

iOS开发过程中遇到的问题和解决方法

作者: jane4321 | 来源:发表于2017-08-24 15:42 被阅读169次
    • 1、在运行程序时候出现iPhone xx doesn’t match any of XXX.app’s targeted device families. You can expand XXX.app’s targeted device families to support iPhone xx.
      意思是说你运行的项目所需要的设备和当前选中的设备不匹配。解决方法



      targets
      1)、项目的targets---》General-----》Deployment Info -----》device 选中和你手机匹配的选项。上面有3个选项iPhone (手机运行项目)iPad (iPad运行项目) Universal(手机和iPad都可以运行项目) 根据自己的情况选择。
      2)、在路径(targets---》General-----》Deployment Info -----》device)中查看项目默认选择的设备类型。用与之匹配的设备运行项目。

    • 2、UIButton 添加倒计时功能后会一闪一闪的 原因
      把button的type改成custom就可以了
    • 3、在项目中遇到一个需求: 一个页面上半部分用原生控件(图1绿色部分)下半部分由于是大段的文字又带有html标签和图片所以用webview展示(图1红色部分)。如下图


      图一

    按理说这种页面应该直接写成h5页面的,但是我们前端紧张所以用这种布局方式展示。这里就会遇到一个问题,怎么设置webview的高度正好和内容的高度一样。这里用到一个UIWebView的代理 - (void)webViewDidFinishLoad:(UIWebView*)webView
    在这个方法中获取 webview的contentSize (webView中其实包含一个scrollView)
    [self.webView.scrollView contentSize].height,就可以获取高度。

    • 4、向上取整用函数ceil()返回不小于x的最小整数值
      ceil()括号里的内容必须是浮点数。
      NSInteger rows =ceil(10/3);
      这个时候返回的rows是3。因为10 和3 都是整数,相除之后还是整数。
      NSInteger rows =ceil(10/3.0);
      这个时候返回的是4 。因为3.0是个浮点型的。所以相除之后也是浮点。向上取整就是4。
    • 5、打印导航栏子视图
    // 获取子视图
    - (void)getSub:(UIView *)view andLevel:(int)level {
        NSArray *subviews = [view subviews];
        if ([subviews count] == 0) return;
        for (UIView *subview in subviews) {
            
            NSString *blank = @"";
            for (int i = 1; i < level; i++) {
                blank = [NSString stringWithFormat:@"  %@", blank];
            }
            NSLog(@"%@%d: %@", blank, level, subview.class);
            [self getSub:subview andLevel:(level+1)];
            
        }
    }
    

    例如打印导航栏的子视图

    [self getSub:self.navigationController.navigationBar andLevel:1];
    
    • 6、错误提示“control reaches end of non-void block”
      意思是这个block不是void类型的需要有个返回值。
    • 7、在appdelegate中获取当前的nav方法有两种
      1、如果是用UINavigationController来组织页面结构的话可以使用
    UINavigationController *nav =  (UINavigationController*)self.window.rootViewController;
    UIViewController *currentVC = nav.visibleViewController;
    

    2、如果是用UITabBarController来组织页面结构的话

    UINavigationController *nav = ((UITabBarController*)appDelegate.window.rootViewController);
    UIViewController *currentVC = nav.selectedViewController;
    

    相关文章

      网友评论

          本文标题:iOS开发过程中遇到的问题和解决方法

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