为了实现我的Xamarin Forms应用程序的一致外观,我需要知道如何更改选项卡式页面选项卡栏图标的字体。使用UITabBarItem.Appearance
作为iOS API会建议似乎没有任何效果。这样做有什么必要?
答案 0 :(得分:2)
你需要编写像这样的自定义渲染器,从下面的代码中获取线索!它有你想要的东西
MyIDisposableObject obj;
try
{
obj = new MyIDisposableObject();
}
finally
{
if (obj != null)
{
((IDisposable)obj).Dispose();
}
}
答案 1 :(得分:1)
这是一个特别有趣的问题。我试过了:
使用UITabBarItem.Appearance.SetTitleTextAttributes
方法将UITextAttribute更新为UIControlState.Normal
的字体(大小9.0f)。这似乎没有任何区别。
我发现设置UINavigationBar.Appearance.SetTitleTextAttributes
会更新UINavigationBar
文字外观以及UITabBarItem
文字外观。
这是一个问题,因为标签页项目字体大小太大了。
TabbedRenderer
受到我在某处看到的样本的启发,我在iOS项目中继承了TabbedRenderer
。
我尝试覆盖TabbedRenderer.SelectedViewController
属性的settor并循环遍历ViewControllers
属性来设置其项目。图标将以标准字体显示,但一旦用户更改了标签,他们就会更新为所需的字体。几乎就在那里!
然后我尝试覆盖AddChildViewController
并在添加控制器TabBarItem
之后更新该控制器,但最终没有效果。在添加控制器后的某个时刻,添加页面的TabBarItem
正在更新。
最终我发现覆盖ViewWillAppear
并设置当时所有标签栏项目的外观似乎完成了我想要的工作。
我在this gist中添加了一个示例。