gpt4 book ai didi

ios - 在所有 View Controller 上设置十六进制背景

转载 作者:行者123 更新时间:2023-11-28 20:06:29 24 4
gpt4 key购买 nike

大家好,我有以下内容:

- (void)viewDidLoad
{
[super viewDidLoad];
// SET BACKGROUND OF APPLICATION ON STARTUP
[self.view setBackgroundColor: [self colorWithHexString:@"88C800"]];

// Do any additional setup after loading the view, typically from a nib.
}

-(UIColor*)colorWithHexString:(NSString*)hex
{
NSString *cString = [[hex stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];

// String should be 6 or 8 characters
if ([cString length] < 6) return [UIColor grayColor];

// strip 0X if it appears
if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];

if ([cString length] != 6) return [UIColor grayColor];

// Separate into r, g, b substrings
NSRange range;
range.location = 0;
range.length = 2;
NSString *rString = [cString substringWithRange:range];

range.location = 2;
NSString *gString = [cString substringWithRange:range];

range.location = 4;
NSString *bString = [cString substringWithRange:range];

// Scan values
unsigned int r, g, b;
[[NSScanner scannerWithString:rString] scanHexInt:&r];
[[NSScanner scannerWithString:gString] scanHexInt:&g];
[[NSScanner scannerWithString:bString] scanHexInt:&b];

return [UIColor colorWithRed:((float) r / 255.0f)
green:((float) g / 255.0f)
blue:((float) b / 255.0f)
alpha:1.0f];
}

这会将我的 view controller (root) 的背景颜色更改为我提供的指定十六进制颜色。我的问题是,当导航到另一个 view controller 时,我如何获得上述功能来影响我所有的 view controllers?此代码在我的 ViewController.m

不确定我需要做什么、建议和想法?

最佳答案

我建议两件事:

  1. 使您的 colorWithHexString: 成为 UIColor 上的类别类方法。然后,您可以从任何导入类别 .h 文件的类访问该方法。
  2. 如果您希望应用中的每个 View Controller 都具有客户颜色(或其他常见行为),您应该创建一个公共(public)基类,例如 MyBaseViewController。让这个类扩展 UIViewController 然后让你的应用程序的所有 View Controller 扩展 MyBaseViewController。将所有常见设置放在基类中。如果您还需要一些 TableView Controller ,则使用类似的代码创建一个 MyBaseTableViewController 类。

关于ios - 在所有 View Controller 上设置十六进制背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21921096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com