UidatePicker 改变字体颜色的方法

我们知道iOS13中出现暗黑模式,当黑色模式是UIDatePicker 时间字体颜色显示是白色的,这时我们就要修改时间字体颜色,查看官方文档中发现没有修改时间字体颜色的api,
下面是我们根据RunTime 循环获取属性的名字 通过键值对的方式修改字体颜色
当UIDatePicker初始化的时候复制到下面就OK了

        unsigned int outCount;
        int i;
        objc_property_t *pProperty = class_copyPropertyList([UIDatePicker class], &outCount);
        for (i = outCount -1; i >= 0; i--)
        {
            // 循环获取属性的名字   property_getName函数返回一个属性的名称
            NSString *getPropertyName = [NSString stringWithCString:property_getName(pProperty[i]) encoding:NSUTF8StringEncoding];
            NSString *getPropertyNameString = [NSString stringWithCString:property_getAttributes(pProperty[i]) encoding:NSUTF8StringEncoding];
            if([getPropertyName isEqualToString:@"textColor"])
            {
                [self.datePicker setValue:[UIColor blackColor] forKey:@"textColor"];
            }
            NSLog(@"%@====%@",getPropertyNameString,getPropertyName);

        }
        SEL selector = NSSelectorFromString(@"setHighlightsToday:");
        NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDatePicker instanceMethodSignatureForSelector:selector]];

        BOOL no = NO;
        [invocation setSelector:selector];
        [invocation setArgument:&no atIndex:2];
        [invocation invokeWithTarget:self.datePicker];

你可能感兴趣的:(UidatePicker 改变字体颜色的方法)