扒虫篇-Bug日志 Ⅵ

2017-12-18  本文已影响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];  //高度设置好以后再设置边框。
    }];
上一篇下一篇

猜你喜欢

热点阅读