Тень на панели навигации с iOS5 (Monotouch или ObjC) - PullRequest
1 голос
/ 17 ноября 2011

Я с нетерпением жду возможности добавить тень на панель навигации в iOS5 ... Пока я использую

m_navigationController.NavigationBar.Layer.ShadowColor   =  UIColor.Black.CGColor;
m_navigationController.NavigationBar.Layer.ShadowOffset  =  new System.Drawing.SizeF( 1f, 1f );
m_navigationController.NavigationBar.Layer.ShadowRadius  =  3f;
m_navigationController.NavigationBar.Layer.ShadowOpacity =  1f;

Это C #, но хорошо, он работает и в Obj-C. Однако этот метод больше не работает в iOS5, кто-нибудь знает, как заставить его работать?

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Попробуйте изменить свой код на это:

m_navigationController.navigationBar.layer.shadowColor   =  [[UIColor blackColor] CGColor];
m_navigationController.navigationBar.layer.shadowOffset  =  CGSizeMake( 1.0, 1.0 );
m_navigationController.navigationBar.layer.shadowRadius  =  3.0;
m_navigationController.navigationBar.layer.shadowOpacity =  1.0;

Это код Objective-C.Убедитесь, что вы #import <QuartzCore/QuartzCore.h> вверху файла.

1 голос
/ 19 ноября 2011

Причина, по которой код больше не работает, заключается в том, что в iOS 5 была введена новая система стилей. Так что вместо этого вы используете систему UIAppearance.

Здесь описывается, как новая система UIAppearance работает с MonoTouch:

http://tirania.org/monomac/archive/2011/Oct-14.html

Класс UIAppearance:

http://docs.go -mono.com / index.aspx? Ссылка = Т% 3 AMonoTouch.UIKit.UIAppearance

Свойство UINavigationBar для внешнего вида: http://iosapi.xamarin.com/index.aspx?link=P%3AMonoTouch.UIKit.UIProgressView.Appearance

Набор свойств, которые вы можете установить в свойстве Appearance UINavigationBar:

http://iosapi.xamarin.com/index.aspx?link=P%3AMonoTouch.UIKit.UIProgressView.Appearance

...