IOS选项卡标题顶部没有图标的空白区域

时间:2017-09-04 08:34:02

标签: ios xamarin tabs xamarin.forms

我有一个带有标签的页面,在标签中我只想要文本,在android中文本是垂直和水平居中,没有任何空格,但在ios版本中,文本顶部有一个空白区域,因为没有图标。 如何删除顶部的空白区域?

1 个答案:

答案 0 :(得分:2)

您可以使用自定义渲染器:

[assembly: ExportRenderer(typeof(TabbedPage), typeof(CustomTabBarRenderer))]
namespace MyProject.iOS.Renderers
{
    public class CustomTabBarRenderer : TabbedRenderer
    {
        public override void ViewWillAppear(bool animated)
        {
            if (TabBar?.Items == null)
                return;

            // Go through our elements and change them
            var tabs = Element as TabbedPage;
            if (tabs != null)
            {
                for (int i = 0; i < TabBar.Items.Length; i++)
                    UpdateTabBarItem(TabBar.Items[i]);
            }

            base.ViewWillAppear(animated);
        }

        private void UpdateTabBarItem(UITabBarItem item)
        {
            if (item == null)
                return;

            // Set the font for the title.
            item.SetTitleTextAttributes(new UITextAttributes() { Font = UIFont.FromName("Your-Font", 10) }, UIControlState.Normal);
            item.SetTitleTextAttributes(new UITextAttributes() { Font = UIFont.FromName("Your-Font", 10) }, UIControlState.Selected);

            // Moves the titles up just a bit.
            item.TitlePositionAdjustment = new UIOffset(0, -2);
        }
    }
}

TitlePositionAdjustment正是您所寻找的。如果需要,您还可以使用此方法使用SetTitleTextAttributes方法更改字体大小。