2015-01-24 3 views
1

Я в настоящее время обновляет некоторые старые приложения Xcode в Xcode 6.Xcode пользовательские панели вкладок 1 пиксель разрыв в верхней

У меня есть пользовательские панели вкладок, которая используется для загрузки и выглядеть хорошо, но в Xcode 6 он разработал промежуток в 1px в верхней части панели вкладок, от которого я не могу избавиться, и выглядит очень плохо!

Я прочитал несколько других подобных сообщений СО и следил за всеми предложениями, но ни один из них, похоже, не имеет никакого эффекта, и разрыв в 1px все еще существует.

enter image description here

Вот мой собственный код панели вкладок:

CGRect screenBound = [[UIScreen mainScreen] bounds]; 
CGSize screenSize = screenBound.size; 
CGRect tabbarTopFrame = CGRectMake(0,(screenSize.height - 59),320,10); 
UIImageView *tabbarTop = [[UIImageView alloc] initWithFrame:tabbarTopFrame]; 
tabbarTop.image = [UIImage imageNamed:@"tabbar_top.png"]; 
[self.tabBarController.view addSubview:tabbarTop]; 

UIImage *selectedImage0 = [UIImage imageNamed:@"tabbar_introduction_active.png"]; 
UIImage *unselectedImage0 = [UIImage imageNamed:@"tabbar_introduction_default.png"]; 
UIImage *selectedImage1 = [UIImage imageNamed:@"tabbar_nests_active.png"]; 
UIImage *unselectedImage1 = [UIImage imageNamed:@"tabbar_nests_default.png"]; 
UIImage *selectedImage2 = [UIImage imageNamed:@"tabbar_home_active.png"]; 
UIImage *unselectedImage2 = [UIImage imageNamed:@"tabbar_home_default.png"]; 
UIImage *selectedImage3 = [UIImage imageNamed:@"tabbar_dogowners_active.png"]; 
UIImage *unselectedImage3 = [UIImage imageNamed:@"tabbar_dogowners_default.png"]; 
UIImage *selectedImage4 = [UIImage imageNamed:@"tabbar_spotted_active.png"]; 
UIImage *unselectedImage4 = [UIImage imageNamed:@"tabbar_spotted_default.png"]; 

UITabBar *tabBar = self.tabBarController.tabBar; 
UITabBarItem *item0 = [tabBar.items objectAtIndex:0]; 
UITabBarItem *item1 = [tabBar.items objectAtIndex:1]; 
UITabBarItem *item2 = [tabBar.items objectAtIndex:2]; 
UITabBarItem *item3 = [tabBar.items objectAtIndex:3]; 
UITabBarItem *item4 = [tabBar.items objectAtIndex:4]; 

[self.tabBarController.tabBar setClipsToBounds:YES]; 
[[UITabBar appearance] setBackgroundImage:[[UIImage alloc] init]]; 

item0.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0); 
item1.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0); 
item2.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0); 
item3.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0); 
item4.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0); 

[item0 setImage:[unselectedImage0 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[item1 setImage:[unselectedImage1 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[item2 setImage:[unselectedImage2 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[item3 setImage:[unselectedImage3 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[item4 setImage:[unselectedImage4 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

[item0 setSelectedImage:[selectedImage0 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[item1 setSelectedImage:[selectedImage1 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[item2 setSelectedImage:[selectedImage2 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[item3 setSelectedImage:[selectedImage3 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[item4 setSelectedImage:[selectedImage4 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

Изображения были использованы в предыдущем коде приложения, который был написан в Xcode 4, и все работало нормально, то, так это должно быть что-то, что изменилось в Xcode 5 или 6 или в iOS7/iOS8?

+0

Код предполагает, что высота полосы вкладок равна 49, верно ли это? Вы можете проверить высоту панели вкладок с помощью кода. – gabbler

+0

Да, если я проверяю код на высоту табуляции, он возвращает 49px. Все графики подтверждены как 49px. Моя настраиваемая панель вкладок высотой 59 пикселей, с 49 пикселями для вкладок и 10-кратной верхней графикой. Этот дополнительный промежуток в 1px находится между панелью вкладок 49px и верхней частью 10px. – Richard

+0

Невозможно воспроизвести, возможно, это что-то с изображением tabbarTop, попробуйте изменить его на другое изображение. – gabbler

ответ

0

Хотя это не проблема, что-то в этом сообщении SO (update tab bar height in iOS 7/8 from iOS 6 - UITabBar) помогло мне.

Оказывается, я не вносил никаких изменений ни в один из моих кодов вообще, но только изменение высот графики с 49px до 50px позволило решить проблему.

Нечетные.

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