我期待在iOS5的NavigationBar上添加阴影......现在,我正在使用
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中不再有效,有人知道如何使它工作吗?
答案 0 :(得分:2)
尝试将代码更改为:
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 :(得分:1)
代码不再有效的原因是在iOS 5中引入了一种新的样式系统。所以你改用UIAppearance系统。
这描述了新的UIAppearance系统如何与MonoTouch配合使用:
http://tirania.org/monomac/archive/2011/Oct-14.html
UIAppearance课程:
http://docs.go-mono.com/index.aspx?link=T%3AMonoTouch.UIKit.UIAppearance
外观的UINavigationBar属性: http://iosapi.xamarin.com/index.aspx?link=P%3AMonoTouch.UIKit.UIProgressView.Appearance
您可以在UINavigationBar的Appearance属性上设置的属性集:
http://iosapi.xamarin.com/index.aspx?link=P%3AMonoTouch.UIKit.UIProgressView.Appearance