这段代码基本上是确定iOS是什么并选择正确的方法调用来设置导航栏的tintColor。请参阅下面代码中的 cmets
/* This is basically getting the systemVersion of the device so 7.0.1 - as this is returned
as an NSString the user is separating this string based on the string "." which will
place each string into the array. so you will have 3 objects in this array of "7", "0", "1"
*/
NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
/* Once we have separated this string into the array we are getting the first object in that array
so index `0` which will return a string at which point we are converting the string "7" to
an intValue and comparing it to the int 7. So if that value is 7 or greater return TRUE
*/
if ([[ver objectAtIndex:0] intValue] >= 7) {
/* The value was TRUE so lets use the iOS 7 way of setting the tintColor.
We do this by setting barTintColor for the navigationBar and because
in iOS 7 the navigationBar can be translucent - by default this is YES
but because we are setting to a color we want we need to set this to NO
because we don't want to have it translucent.
*/
self.navigationController.navigationBar.barTintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"top_bar"]];
self.navigationController.navigationBar.translucent = NO;
} else {
/*
If all fails in the if statements conditional check we must be on something
that is below iOS 7 so use the old way of things and just set the tintColor
*/
self.navigationController.navigationBar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"top_bar"]];
}
只是让您知道这不起作用。如果你打算使用这个,把它改成:
if (floor(NSFoundationVersionNumber) => NSFoundationVersionNumber_iOS_7_0) {
self.navigationController.navigationBar.barTintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"top_bar"]];
self.navigationController.navigationBar.translucent = NO;
} else {
self.navigationController.navigationBar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"top_bar"]];
}
这是因为if ([[ver objectAtIndex:0] intValue] >= 7) 将返回 FALSE,即使 iOS 7 也是如此。
要设置工具栏,您可以使用相同的方法但替换:
self.navigationController.navigationBar.barTintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"top_bar"]];
self.navigationController.navigationBar.translucent = NO;
与
[toolbar setBarTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"dropdownbar"]]];
[toolbar setTranslucent:NO];
并替换
self.navigationController.navigationBar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"top_bar"]];
与
[toolbar setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"dropdownbar"]]];