我们如何在Xamarin.iOS中实现大字体可访问性?

时间:2017-02-08 14:52:03

标签: xamarin xamarin.ios accessibility font-size large-text

我的应用程序是使用Xamarin.iOS开发的,我需要让它可以访问。我们无法找到任何帮助来实现xamarin.iOS中的大文本可访问性。我找到了this链接,解释了如何在Xamarin.Forms和this中实现MonoTouch。有人可以帮助我如何在Xamarin.iOS上实现大文本可访问性。

2 个答案:

答案 0 :(得分:0)

MonoTouch和Xamarin.iOS是一回事,只是一个不同的名字。

以完全相同的方式实现,您可以将UILabelUITextField的{​​{1}}属性设置为UIFont静态类中的一种可用字体像这样:

var label = new UILabel
{
    Font = UIFont.PreferredBody
};

这应该根据iOS上的辅助功能设置自动缩放字体。

答案 1 :(得分:0)

将其中一个UIFontTextStyle分配给您的UI元素,当应用启动时,元素的文字大小将根据UIFontTextStyle和用户的当前Accessibility Larger Text设置进​​行设置:

var uiLabel = new UILabel(new CGRect(40, 40, 200, 40));
uiLabel.Text = "StackOverflow";
uiLabel.Font = UIFont.GetPreferredFontForTextStyle(UIFontTextStyle.Body);
View.AddSubview(uiLabel);

如果您想动态响应Accessibility Larger Text更改,以便用户无需重新启动您的应用,请订阅UIContentSizeCategoryDidChangeNotification并更新您的观看次数:

NSNotificationCenter.DefaultCenter.AddObserver(
    new NSString("UIContentSizeCategoryDidChangeNotification"),
    (NSNotification obj) =>
    {
        Console.WriteLine("Update layouts/subviews/layers/etc...");
        View.SetNeedsLayout();
    },
    null
);