Xamarin iOS-标签页-移动图标位置

问题描述

我的应用程序中有一个标签页,在android上看起来很棒-输入了图标(没有文本,只有图标),而且看起来不错。

在iOS上,我的标签栏位于底部(很好),但是将图标向右按在标签栏顶部。因此,它们下方有大量空间,但它们位于顶部的边缘。好吧,至少有两个是。另外两个由于图像设计的原因,为两个像素内置了图像填充,并且触感较低。但这不重要。

如何仅在iOS上如何在标签页图标上设置一些填充?还是居中?

enter image description here

解决方法

您可以使用自定义渲染器将图标居中。

[assembly: ExportRenderer(typeof(TabbedPage),typeof(CustomTabbedPageRenderer))]
namespace TabbedPageWithNavigationPage.iOS
{
    class CustomTabbedPageRenderer : TabbedRenderer
    {
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
        }

        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);

            var tabBarItems = TabBar.Items;
            tabBarItems[0].ImageInsets = new UIEdgeInsets(6,-6,0);

            tabBarItems[1].ImageInsets = new UIEdgeInsets(6,0);
            tabBarItems[2].ImageInsets = new UIEdgeInsets(6,0);

        }
    }
}