Кодирование для экрана iphone 5
Я взял универсальный проект. Я кодировал для экрана iPhone 5, но он не обнаруживает его.
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
//ui for ipad
}
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) {
tableView.frame = CGRectMake(0, 40, 320 ,508);
}
else {
tableView.frame = CGRectMake(0, 40, 320 ,420);
}
}
Это не работает, хотя. Когда я отлаживаю код на iPhone 5 screenBounds = 320 * 480.
Куда я иду не так?
7 ответов
Это так просто обнаружить экран iPhone5, просто напишите
#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)
в вашем файле.pch.... и вы можете дополнительно проверить экран iPhone5, как if(IS_IPHONE5)
,
У меня этот код отлично работает
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
if (IS_IPHONE_5)
{
//iphone 5
}
Вы добавляете Splash Screen для iphone 5.Default-568h@2x.png файл, тогда он работает нормально
Выбери свой UITableView
от IB и выберите размер как Retina 4
для всех экранов, даже в главном окне XIB-файла. Это отлично работает даже на iphone 4.
Попробуйте этот код::
if ([[UIScreen mainScreen] bounds].size.height == 568)
{
[tableView setFrame:CGRectMake(0, 40, 320 ,508)];
}
else if ([[UIScreen mainScreen] bounds].size.height == 480)
{
[tableView setFrame:CGRectMake(0, 40, 320 ,420)];
}
Надеюсь, это тебе поможет.
Благодарю.
Я использовал этот код для проверки устройства iPhone 5.
float scrnheight = [[UIScreen mainScreen] bounds].size.height ;
if(scrnheight == 568.0f)
{
self.isIphone5 = true;
}
Попробуйте использовать это, чтобы обнаружить iPhone 5 вместо этого:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
CGSize theHeight = [[UIScreen mainScreen] bounds].size;
if(theHeight.height == 568) {
// iPhone 5
tableView.frame = CGRectMake(0, 40, 320 ,508);
}
else {
// iPhone 4
tableView.frame = CGRectMake(0, 40, 320 ,420);
}
}
В качестве альтернативы вы можете определить это:
#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)
Который вы можете использовать повторно всякий раз, когда вам нужно выяснить, iPhone это или нет.