切换 IOS Xamarin Forms 时如何更改切换按钮的颜色?自定义渲染将仅设置颜色一次:
Xamarin forms toggle button default color on IOS
并且当切换 Switch 时它不会改变。同样,对于在 AppDelegate.cs 中设置值,只会执行一次。我需要这个:
在 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/