2014-12-22 3 views
0

Я пытаюсь добавить поддержку заголовков для всех iPhones, и это то, что у меня есть до сих пор, но это не работает, когда я запускаю его. Что мне нужно изменить в моем коде, чтобы он работал.Поддержка заголовка высоты стола для iPhone 5 и 6/6 +

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { 

    NSLog(@"iphone 6 plus support"); 

    if ([model isEqualToString:@"iPhone7,1"]) 



    if (section == self.objects.count) { 
     return 0.0f; 
    } 
    return 54.0f; 

} 


NSLog(@"iphone 5"); 

if ([model isEqualToString:@"iPhone7,2"]) 

    if (section == self.objects.count) { 
     return 0.0f; 
    } 
return 16.0f; 
+0

Какая часть не работает? Заголовки или обнаружение устройства? Также не рекомендуется использовать ограничения экрана для обнаружения устройства, используйте что-то вроде 'NSString * model = [RSDeviceInfo verboseModel]; if ([model isEqualToString: @ "iPhone7,2"]) {return @ "iPhone 6"; } ' – brandonscript

+0

Он не обнаруживает устройство, которое не позволяет настроить высоту заголовка для устройства. – user3310994

ответ

0

Я использую класс с этими методами в нем, чтобы определить тип устройства:

+ (BOOL)isIphone4S { 
    if ([[self verboseModel] isEqualToString:@"iPhone4,1"]) 
     return YES; 
    else 
     return NO; 
} 

+ (BOOL)isIphone6Any { 
    if ([[self verboseModel] containsString:@"iPhone7"]) 
     return YES; 
    else 
     return NO; 
} 

+ (BOOL)isIphone6Plus { 
    if ([[self verboseModel] isEqualToString:@"iPhone7,1"]) 
     return YES; 
    else 
     return NO; 
} 

+ (BOOL)isIphone6 { 
    if ([[self verboseModel] isEqualToString:@"iPhone7,2"]) 
     return YES; 
    else 
     return NO; 
} 

+ (NSString *) verboseModel{ 
    size_t size; 
    sysctlbyname("hw.machine", NULL, &size, NULL, 0); 
    char *machine = malloc(size); 
    sysctlbyname("hw.machine", machine, &size, NULL, 0); 
    NSString *model = [NSString stringWithUTF8String:machine]; 
    free(machine); 
    return model; 
} 

+ (NSString *) deviceModel{ 
    NSString *model = [RSDeviceInfo verboseModel]; 
    if ([model isEqualToString:@"iPhone1,1"]) return @"iPhone 1G"; 
    if ([model isEqualToString:@"iPhone1,2"]) return @"iPhone 3G"; 
    if ([model isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS"; 
    if ([model isEqualToString:@"iPhone3,1"]) return @"iPhone 4"; 
    if ([model isEqualToString:@"iPhone3,3"]) return @"Verizon iPhone 4"; 
    if ([model isEqualToString:@"iPhone4,1"]) return @"iPhone 4S"; 
    if ([model isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (GSM)"; 
    if ([model isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (GSM+CDMA)"; 
    if ([model isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (GSM)"; 
    if ([model isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (GSM+CDMA)"; 
    if ([model isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (GSM)"; 
    if ([model isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (GSM+CDMA)"; 
    if ([model isEqualToString:@"iPhone7,2"]) return @"iPhone 6"; 
    if ([model isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus"; 

    if ([model isEqualToString:@"iPod1,1"])  return @"iPod Touch 1G"; 
    if ([model isEqualToString:@"iPod2,1"])  return @"iPod Touch 2G"; 
    if ([model isEqualToString:@"iPod3,1"])  return @"iPod Touch 3G"; 
    if ([model isEqualToString:@"iPod4,1"])  return @"iPod Touch 4G"; 
    if ([model isEqualToString:@"iPod5,1"])  return @"iPod Touch 5G"; 

    if ([model isEqualToString:@"iPad1,1"])  return @"iPad"; 
    if ([model isEqualToString:@"iPad2,1"])  return @"iPad 2 (WiFi)"; 
    if ([model isEqualToString:@"iPad2,2"])  return @"iPad 2 (GSM)"; 
    if ([model isEqualToString:@"iPad2,3"])  return @"iPad 2 (CDMA)"; 
    if ([model isEqualToString:@"iPad2,4"])  return @"iPad 2 (WiFi)"; 
    if ([model isEqualToString:@"iPad2,5"])  return @"iPad Mini (WiFi)"; 
    if ([model isEqualToString:@"iPad2,6"])  return @"iPad Mini (GSM)"; 
    if ([model isEqualToString:@"iPad2,7"])  return @"iPad Mini (GSM+CDMA)"; 
    if ([model isEqualToString:@"iPad3,1"])  return @"iPad 3 (WiFi)"; 
    if ([model isEqualToString:@"iPad3,2"])  return @"iPad 3 (GSM+CDMA)"; 
    if ([model isEqualToString:@"iPad3,3"])  return @"iPad 3 (GSM)"; 
    if ([model isEqualToString:@"iPad3,4"])  return @"iPad 4 (WiFi)"; 
    if ([model isEqualToString:@"iPad3,5"])  return @"iPad 4 (GSM)"; 
    if ([model isEqualToString:@"iPad3,6"])  return @"iPad 4 (GSM+CDMA)"; 
    if ([model isEqualToString:@"iPad4,1"])  return @"iPad Air (WiFi)"; 
    if ([model isEqualToString:@"iPad4,2"])  return @"iPad Air (Cellular)"; 
    if ([model isEqualToString:@"iPad4,4"])  return @"iPad mini 2G (WiFi)"; 
    if ([model isEqualToString:@"iPad4,5"])  return @"iPad mini 2G (Cellular)"; 

    if ([model isEqualToString:@"i386"])   return @"Simulator"; 
    if ([model isEqualToString:@"x86_64"])  return @"Simulator"; 
    return model; 
} 
+0

Хорошо, эти методы хороши, но как бы реализовать его в коде, который у меня выше. – user3310994

+0

Создайте новый класс и подбросьте их, требуя '' и ''. – brandonscript

+0

Так оно и должно выглядеть? – user3310994

Смежные вопросы