Xamarin.Forms在iOS上自定义操作栏

时间:2016-05-02 22:29:46

标签: xamarin xamarin.ios xamarin.forms

我正在使用Xamarin.Forms并且在iOS上我需要自定义顶部操作栏。 在这种情况下,我需要删除顶部操作栏和下面的内容视图之间的暗线(参见屏幕截图)。 我该怎么办?

提前谢谢!!

enter image description here

我在这里做了它并且它起作用了:

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            //Tab bar
            UITabBar.Appearance.SelectedImageTintColor = UIColor.FromRGB(247, 139, 43); 
            //Switch
            UISwitch.Appearance.OnTintColor = UIColor.FromRGB(247, 139, 43);
            //----------------------------------------------------------------------------
            UINavigationBar.Appearance.BarTintColor = UIColor.Clear;
            UINavigationBar.Appearance.ShadowImage = new UIImage();
            UINavigationBar.Appearance.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);
            //----------------------------------------------------------------------------                    
            global::Xamarin.Forms.Forms.Init();            
            ImageCircleRenderer.Init();                 
            LoadApplication(new App());

            return base.FinishedLaunching(app, options);
        }  

1 个答案:

答案 0 :(得分:0)

您可以通过创建自定义渲染器来实现此目的:

[assembly: ExportRenderer(typeof(CustomNavigationPage), typeof(CustomNavigationRenderer))]
    namespaceiOS.Renderers
    {
        public class CustomNavigationRenderer : NavigationRenderer
        {

            public override void ViewDidLoad()
            {
                base.ViewDidLoad();

                this.NavigationBar.ShadowImage = new UIImage();
                this.NavigationBar.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);
             }
          }
     }

或者在您的iOS项目中,在AppDelegate方法“FinishedLaunching”中,您可以使用UIAppearance API来全面设置应用程序的样式。

UINavigationBar.Appearance.ShadowImage = new UIImage();
UINavigationBar.Appearance.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);