mirror of
https://github.com/LeoNatan/LNPopupController.git
synced 2026-07-30 16:11:51 +00:00
144 lines
3.2 KiB
Objective-C
144 lines
3.2 KiB
Objective-C
//
|
|
// RandomColors.m
|
|
// LNPopupControllerExample
|
|
//
|
|
// Created by Leo Natan on 8/8/15.
|
|
// Copyright © 2015 Leo Natan. All rights reserved.
|
|
//
|
|
|
|
@import UIKit;
|
|
#import "RandomColors.h"
|
|
|
|
static NSMutableArray<UIColor*>* namedSystemColors;
|
|
static NSUInteger lastNamedSystemColorIdx = 0;
|
|
|
|
__attribute__((constructor))
|
|
static void LNInitializeDemoColors(void)
|
|
{
|
|
namedSystemColors = @[
|
|
UIColor.systemRedColor,
|
|
UIColor.systemGreenColor,
|
|
UIColor.systemBlueColor,
|
|
UIColor.systemOrangeColor,
|
|
UIColor.systemYellowColor,
|
|
UIColor.systemPinkColor,
|
|
UIColor.systemPurpleColor,
|
|
UIColor.systemTealColor
|
|
].mutableCopy;
|
|
if(@available(iOS 13.0, *))
|
|
{
|
|
[namedSystemColors addObject:UIColor.systemIndigoColor];
|
|
[namedSystemColors addObject:UIColor.systemBrownColor];
|
|
}
|
|
if(@available(iOS 15.0, *))
|
|
{
|
|
[namedSystemColors addObject:UIColor.systemMintColor];
|
|
[namedSystemColors addObject:UIColor.systemCyanColor];
|
|
}
|
|
}
|
|
|
|
UIColor* LNRandomSystemColor(void)
|
|
{
|
|
// return namedSystemColors[arc4random_uniform((uint32_t)namedSystemColors.count)];
|
|
|
|
NSUInteger rv = lastNamedSystemColorIdx;
|
|
lastNamedSystemColorIdx = (lastNamedSystemColorIdx + 1) % namedSystemColors.count;
|
|
return namedSystemColors[rv];
|
|
}
|
|
|
|
UIColor* _LNSeedDarkColor(long seed)
|
|
{
|
|
srand48(seed);
|
|
CGFloat hue = drand48();
|
|
CGFloat saturation = 0.5;
|
|
CGFloat brightness = 0.3 + 0.1 * drand48();
|
|
return [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];
|
|
}
|
|
|
|
UIColor* _LNSeedLightColor(long seed)
|
|
{
|
|
srand48(seed);
|
|
CGFloat hue = drand48();
|
|
CGFloat saturation = 0.5;
|
|
CGFloat brightness = 1.0 - 0.1 * drand48();
|
|
return [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];
|
|
}
|
|
|
|
API_AVAILABLE(ios(13.0))
|
|
UIColor* _LNSeedAdaptiveColor(long seed)
|
|
{
|
|
UIColor* light = _LNSeedLightColor(seed);
|
|
UIColor* dark = _LNSeedDarkColor(seed);
|
|
return [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull collection) {
|
|
if(collection.userInterfaceStyle == UIUserInterfaceStyleDark)
|
|
{
|
|
return dark;
|
|
}
|
|
else
|
|
{
|
|
return light;
|
|
}
|
|
}];
|
|
}
|
|
|
|
API_AVAILABLE(ios(13.0))
|
|
UIColor* _LNSeedAdaptiveInvertedColor(long seed)
|
|
{
|
|
UIColor* light = _LNSeedLightColor(seed);
|
|
UIColor* dark = _LNSeedDarkColor(seed);
|
|
return [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull collection) {
|
|
if(collection.userInterfaceStyle == UIUserInterfaceStyleDark)
|
|
{
|
|
return light;
|
|
}
|
|
else
|
|
{
|
|
return dark;
|
|
}
|
|
}];
|
|
}
|
|
|
|
API_AVAILABLE(ios(13.0))
|
|
UIColor* LNRandomAdaptiveColor(void)
|
|
{
|
|
return _LNSeedAdaptiveColor(arc4random());
|
|
}
|
|
|
|
API_AVAILABLE(ios(13.0))
|
|
UIColor* LNRandomAdaptiveInvertedColor(void)
|
|
{
|
|
return _LNSeedAdaptiveInvertedColor(arc4random());
|
|
}
|
|
|
|
API_AVAILABLE(ios(13.0))
|
|
UIColor* LNSeedAdaptiveColor(NSString* seed)
|
|
{
|
|
return _LNSeedAdaptiveColor(seed.hash);
|
|
}
|
|
|
|
API_AVAILABLE(ios(13.0))
|
|
UIColor* LNSeedAdaptiveInvertedColor(NSString* seed)
|
|
{
|
|
return _LNSeedAdaptiveInvertedColor(seed.hash);
|
|
}
|
|
|
|
UIColor* LNRandomDarkColor(void)
|
|
{
|
|
return _LNSeedDarkColor(arc4random());
|
|
}
|
|
|
|
UIColor* LNRandomLightColor(void)
|
|
{
|
|
return _LNSeedLightColor(arc4random());
|
|
}
|
|
|
|
UIColor* LNSeedDarkColor(NSString* seed)
|
|
{
|
|
return _LNSeedDarkColor(seed.hash);
|
|
}
|
|
|
|
UIColor* LNSeedLightColor(NSString* seed)
|
|
{
|
|
return _LNSeedLightColor(seed.hash);
|
|
}
|