2014-07-31 2 views
0

Я хотел бы воспроизвести экран AppStore, где у них есть UIToolbar под панелью навигации. Волосяная линия удаляется из навигационной панели, но у нее есть ее для панели инструментов.UIToolbar hairline

Вот как это выглядит: enter image description here

Для того, чтобы сделать это я установить UIToolbar иметь черный стиль + пользовательские BackgroundColor:

[[UIToolbar appearance] setBackgroundColor:[UIColor navBarBackgroundColor]]; 

Для удаления волосяного покрова из навигации бар я сделал:

[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]]; 

[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] 
               forBarMetrics:UIBarMetricsDefault]; 

И я получил это:

enter image description here

Я думал, что для того, чтобы добавить линию волос на дне я мог создать UIImage с 1px линии на дне, но я хотел бы сделать это в какой-то другой более хорошим способом, если это возможно.

+0

является 'clipToBounds' значение TRUE? – holex

+0

Не изменилось свойство clipToBounds. Для панели инструментов установлено значение НЕТ. –

+0

Apple предоставляет пример кода о том, как это сделать. Вы можете найти его здесь https://developer.apple.com/library/ios/samplecode/NavBar/Listings/ExtendedNavBar_ExtendedNavBarView_m.html#//apple_ref/doc/uid/DTS40007418-ExtendedNavBar_ExtendedNavBarView_m-DontLinkElementID_26 – beyowulf

ответ

0

Вы можете добавить нижнюю границу, добавив подслой слой вашей панели инструментов:

CALayer *bottomBorder = [CALayer layer]; 

bottomBorder.frame = CGRectMake(0.0f, toolbar.frame.size.height - 1.0f, toolbar.frame.size.width, 1.0f); 

bottomBorder.backgroundColor = [UIColor colorWithWhite:0.8f 
              alpha:1.0f].CGColor; 

[toolbar.layer addSublayer:bottomBorder]; 
+0

В iOS7, по крайней мере, это doesn ' т производить то, что требуется. –

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