美文网首页
扒虫篇-Bug日志 Ⅵ

扒虫篇-Bug日志 Ⅵ

作者: 進无尽 | 来源:发表于2017-12-18 11:47 被阅读0次

    1. Xcode中开发者账号登陆不上

    试了试其他的账号也是一样,在账号密码没有输入错误的情况下还是登陆不上。
    解决办法:重启电脑就解决了。

    2. Xcode9中往工程中拖入文件很容易报错

    很奇怪的是,以前的Xcode拖入文件时,这里的m文件都会自动添加进来,但是Xcode9中会经常出现往工程中拖入文件 报 Undefined symbols for architecture x86_64:的错

    解决办法: 如下图添加进来即可

    3.一处 Extern 造成的报错



    这样修改后就好了

    4.修改UITextField 的placeholder字体不起效果

        _numberTF.placeholder = @"请输入数量";
        [_numberTF setValue:GrayTextColor forKeyPath:@"_placeholderLabel.textColor"];
        [_numberTF setValue:[UIFont fontWithName:@"Helvetica" size:14] forKeyPath:@"_placeholderLabel.font"];
    

    那是因为要先设置 placeholder 然后再设置,上面的代码顺序颠倒就不会有效果了。

    5.修复一个MBProgressHUD不消失的Bug

    如上图,以及执行过[MBProgressHUD hideHUDForView:subVC.view];可是有一个MBProgressHUD指示器依然不消失,最后无奈修改了 MBProgressHUD.m里面的下面这个方法解决了。

    + (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated {
    
      NSEnumerator *subviewsEnum = [view.subviews reverseObjectEnumerator];
      BOOL haveHUD = NO;
      for (UIView *subview in subviewsEnum) {
          if ([subview isKindOfClass:self]) {
              ((MBProgressHUD *)subview).removeFromSuperViewOnHide = YES;
              [(MBProgressHUD *)subview hide:animated];
              haveHUD = YES;
          }
        }
        return haveHUD;
    }
    

    6.iOS 11裁剪图片偏移问题

    1511833721528188.png

    解决方法:

    裁剪时,隐藏statusBar。(此Bug在iOS8也会出现,iOS 9/10是正常的。)

    iOS 8隐藏statusBar需要在UIImagePickerController的delegate实现中,添加以下代码

    - (void)navigationController:(UINavigationController *)navigationController
      willShowViewController:(UIViewController *)viewController
                    animated:(BOOL)animated {
        if ([navigationController isKindOfClass:[UIImagePickerController class]] ) {
            [[UIApplication sharedApplication] setStatusBarHidden:YES];
        }
    }
    

    7.真机调试中 Counld not launch “XXXX” 手机 has denied the launch request


    以为是偶尔出现的Bug,多次运行,换手机还是这样报错,原来这是因为工程证书配置的问题。
    赶快看看这个地方的配置吧

    8.动态获取文字高度时,调整Label后总是仍然显示不完全(有省略)

    [bgView addSubview:rightLabel[i]];
     rightLabel[i].sd_layout
            .leftSpaceToView(bgView,Scale_X(95))
            .topSpaceToView(i==0?bgView:rightLabel[i-1],Scale_Y(10))
            .rightSpaceToView(bgView, Scale_X(20))
            .heightIs(Scale_Y(15));  
    
     CGFloat height =[[MethodTool shareTool]changeStationWidth:rightLabel[2].text anWidthTxtt:(WIDTH-Scale_X(115)) anfont:MEDIUM_FONT];
     rightLabel[2].sd_layout.heightIs(Scale_Y(height));
    

    看上面的代码没什么问题呀,95+20=115呀,可为什么就是显示不完全呢,最后发现bgView的宽度不是 WIDTH ,而是WIDTH-30,粗心大意的话,很容易找不到问题陷入纠结中。

    9.添加新设备后修改 Provisioning Profiles 遇到的问题

    配置文件路径:~/Library/MobileDevice/Provisioning Profiles


    选择A后
    选择B后

    不知何种原因,B是无效的,如果勾选 Automatically manage signing 后就无法指定某个配置文件签名打包了。

    添加一个新的手机UUID,此时点击原来的配置文件的 Edit 并且 select all 设备后,下载新的配置文件并双击安装到本地。选择后如果如A一样的情况,就是没问题的。

    10.为UIView添加边框时的Bug

    这个问题也不是难,就是隐藏性比较强,稍不注意,不认真分析,想当然的话就会被困住很久。


    self.whiteBgView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, selfWidth, 0)];
    self.whiteBgView.backgroundColor = [UIColor whiteColor];
    [self addSubview:self.whiteBgView];
    [self.whiteBgView addBorderForColor:[UIColor redColor] borderWidth:1 borderType:UIBorderSideTypeBottom|UIBorderSideTypeRight];
    

    明明设置的不是上边加边框呀,为什么变成这样?
    这是因为:self.whiteBgView的高度是0,造成的,我晕。正确的设置为,self.whiteBgView高度动态设置好了后再加边框,这样就不会出现这样的问题了。

    [UIView animateWithDuration:0.1 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
            [self.whiteBgView setHeight:Scale_Y(110)];
            self.sd_layout.heightIs(Scale_Y(150));
        } completion:^(BOOL finished) {
            [self addBorad];  //高度设置好以后再设置边框。
        }];
    

    相关文章

      网友评论

          本文标题:扒虫篇-Bug日志 Ⅵ

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