gpt4 book ai didi

ios - 更改 IOS Xamarin Forms 中的开关颜色

转载 作者:行者123 更新时间:2023-12-01 16:02:14 24 4
gpt4 key购买 nike

切换 IOS Xamarin Forms 时如何更改切换按钮的颜色?自定义渲染将仅设置颜色一次:

Xamarin forms toggle button default color on IOS

并且当切换 Switch 时它不会改变。同样,对于在 AppDelegate.cs 中设置值,只会执行一次。我需要这个:

enter image description here enter image description here

在 IOS 中唯一可能的使用:

UISwitch.Appearance.ThumbTintColor = UIColor.Brown;
UISwitch.Appearance.OnTintColor = UIColor.Red;

但是如果我的交换机位于 PCL 项目中并且其用于 Xamarin Forms,我如何访问该字段。

最佳答案

我解决了这个问题:

public class CustomSwitchRenderer: SwitchRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Switch> e)
{
Element.Toggled += ElementToggled;

base.OnElementChanged(e);

if (Control != null)
{
UpdateUiSwitchColor();
}
}

private void ElementToggled(object sender, ToggledEventArgs e)
{
UpdateUiSwitchColor();
}

private void UpdateUiSwitchColor()
{
var temp = Element as Switch;

if (temp.IsToggled)
{
Control.ThumbTintColor = Color.FromHex(ColorConstants.BlueHex).ToUIColor();
Control.OnTintColor = Color.FromHex(ColorConstants.OblueLightHex).ToUIColor();
}
else
{
Control.ThumbTintColor = Color.FromHex(ColorConstants.GrayHex).ToUIColor();
}
}
}

因此,每当执行 Toggle 时我都会激活事件:

Element.Toggled += ElementToggled;

关于ios - 更改 IOS Xamarin Forms 中的开关颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49073923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com