一、运行报错
报错 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s arm64).
解决方法:
添加x86_64
二、iOS14 YYAnimatedImageView 图片不显示
方法1、直接修改源码(适用于三方库拖拽到项目中的)
将displayLayer方法重写即可
- (void)displayLayer:(CALayer *)layer {
if (_curFrame) {
layer.contents = (__bridge id)_curFrame.CGImage;
} else {
if (@available(iOS 14.0, *)) {
[super displayLayer:layer];
}
}
}
方法2、方法交换(适用于通过cocoapods引入三方库的)
新建一个YYAnimatedImageView的category,以下为.m文件
#import "YYAnimatedImageView+iOS14.h"
@implementation YYAnimatedImageView (iOS14)
+ (void)load
{
// 获取系统的方法
Method displayLayerMethod = class_getInstanceMethod(self, @selector(displayLayer:));
// 获取更新的方法
Method displayLayerNewMethod = class_getInstanceMethod(self, @selector(gs_displayLayer:));
// 方法交换
method_exchangeImplementations(displayLayerMethod, displayLayerNewMethod);
}
- (void)gs_displayLayer:(CALayer *)layer
{
Ivar imageIvar = class_getInstanceVariable([self class], "_curFrame");
UIImage *image = object_getIvar(self, imageIvar);
if (image)
{
layer.contents = (__bridge id)image.CGImage;
}
else
{
if (@available(iOS 14.0, *))
{
[super displayLayer:layer];
}
}
}
@end
附上附件:YYAnimatedImageView+iOS14
三、iOS14 UIDatePicker 样式改变
解决方法:
需要对样式重新设置
if (@available(iOS 14.0, *)) {
birthDatePicker.preferredDatePickerStyle = UIDatePickerStyleWheels;
}
需要注意的是:设置完样式需要重新设置frame,否则会出现frame错乱。