พฤติกรรมของtintColor
สำหรับบาร์มีการเปลี่ยนแปลงใน iOS 7.0 มันไม่มีผลต่อพื้นหลังของแถบ
จากเอกสาร:
การอ้างอิงระดับbarTintColor
สีอ่อนที่ใช้กับพื้นหลังของแถบนำทาง
@property(nonatomic, retain) UIColor *barTintColor
คำอธิบายสีนี้ทำโปร่งแสงโดยค่าเริ่มต้นถ้าคุณตั้งโปร่งแสงทรัพย์สินไป
NO
ความพร้อมใช้งาน
พร้อมใช้งานใน iOS 7.0 และใหม่กว่า
ประกาศใน
UINavigationBar.h
รหัส
NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) {
// iOS 7.0 or later
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
self.navigationController.navigationBar.translucent = NO;
}else {
// iOS 6.1 or earlier
self.navigationController.navigationBar.tintColor = [UIColor redColor];
}
นอกจากนี้เรายังสามารถใช้สิ่งนี้เพื่อตรวจสอบเวอร์ชัน iOS ตามที่กล่าวไว้ใน คู่มือการเปลี่ยน iOS 7 UI
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
// iOS 6.1 or earlier
self.navigationController.navigationBar.tintColor = [UIColor redColor];
} else {
// iOS 7.0 or later
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
self.navigationController.navigationBar.translucent = NO;
}
แก้ไข
โดยใช้ xib