0

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

4

2 回答 2

1

UIFontTextStyles 之一分配给您的 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
);
于 2017-02-08T16:01:25.627 回答
0

MonoTouch 和 Xamarin.iOS 是同一个东西,只是名称不同。

它以完全相同的方式实现,您可以将您的Font属性设置为UILabel或静态类UITextField中的一种可用字体,如下所示:UIFont

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

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

于 2017-02-08T15:58:53.137 回答