自定义开关在Xamarin窗体中不显示开/关图像
当我按照上面的指南制作自定义渲染器时,“OnImage”和“OffImage”不起作用。我在单击“开”或“关”时看不到图像 在我的类中,我发送一个HTTP url,然后将该url转换为UIImage。它成功地工作了,因为我一直在添加断点。我甚至试着用我图书馆里的一张图片来看看这是否会改变结果,但没有自定义开关在Xamarin窗体中不显示开/关图像,xamarin,xamarin.forms,xamarin.ios,Xamarin,Xamarin.forms,Xamarin.ios,当我按照上面的指南制作自定义渲染器时,“OnImage”和“OffImage”不起作用。我在单击“开”或“关”时看不到图像 在我的类中,我发送一个HTTP url,然后将该url转换为UIImage。它成功地工作了,因为我一直在添加断点。我甚至试着用我图书馆里的一张图片来看看这是否会改变结果,但没有 public class Switch_iOS : SwitchRenderer { Version version = new Version(ObjCRuntime.Constants.
public class Switch_iOS : SwitchRenderer
{
Version version = new Version(ObjCRuntime.Constants.Version);
protected override void OnElementChanged(ElementChangedEventArgs<Switch> e)
{
base.OnElementChanged(e);
if (e.OldElement != null || e.NewElement == null)
return;
var view = (CustomSwitch)Element;
if (!string.IsNullOrEmpty(view.SwitchThumbImage))
{
if (version > new Version(6, 0))
{
Control.OnImage = FromUrl(view.SwitchThumbImage);
Control.OffImage = FromUrl(view.SwitchThumbImage);
}
else
{
Control.ThumbTintColor = view.SwitchThumbColor.ToUIColor();
}
}
}
public UIImage FromUrl(string uri)
{
using (var url = new NSUrl(uri))
using (var data = NSData.FromUrl(url))
return UIImage.LoadFromData(data);
}
}
public-class-Switch\u-iOS:SwitchRenderer
{
版本版本=新版本(ObjCRuntime.Constants.Version);
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(e.OldElement!=null | | e.NewElement==null)
返回;
var视图=(CustomSwitch)元素;
如果(!string.IsNullOrEmpty(view.SwitchThumbImage))
{
如果(版本>新版本(6,0))
{
Control.OnImage=FromUrl(view.SwitchThumbImage);
Control.OffImage=FromUrl(view.SwitchThumbImage);
}
其他的
{
Control.ThumbTintColor=view.SwitchThumbColor.ToUIColor();
}
}
}
公共UIImage FromUrl(字符串uri)
{
使用(var url=new NSUrl(uri))
使用(var data=NSData.FromUrl(url))
返回UIImage.LoadFromData(数据);
}
}
“Control.OnImage”和“Control.officemage”是否不适用于最新的Xamarin表单?我还打算为交换机制作背景图像。不幸的是,iOS 7中关于
OnImage
和ofimage
的UISwitch无效
看看:
在iOS 7及更高版本中,此属性无效
在iOS 6中,此图像表示交换机的内部内容。
指定的图像将与开关的圆形挡板合成
和拇指来创建最终外观
相反,你可以使用
设置开关打开时的色调颜色onTintColor
设置开关关闭时的色调tintColor
设置拇指的着色颜色thumbTintColor
UISwitch
的所有功能,否则图像不能添加到UISwitch
。好吧。你知道有任何github repo在xamarin中进行了自定义吗?@DiddanDo theSyncfusion.xamarin.Core
nuget软件包可以通过使用SfSwitch
实现这一点。请参阅yea,这正是我所需要的。但是synflusion非常昂贵