扒虫篇-Bug日志 Ⅵ
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]; //高度设置好以后再设置边框。
}];