C# 如何在Xamarin forms iOS中从自定义渲染器滑块中删除thumb?
因此,我创建了一个自定义渲染器滑块,因为我想稍微调整一下样式及其宽度。我可以很好地处理宽度,但当我试图去除拇指头时,它不会被删除 我尝试了两种C# 如何在Xamarin forms iOS中从自定义渲染器滑块中删除thumb?,c#,xamarin.forms,xamarin.ios,C#,Xamarin.forms,Xamarin.ios,因此,我创建了一个自定义渲染器滑块,因为我想稍微调整一下样式及其宽度。我可以很好地处理宽度,但当我试图去除拇指头时,它不会被删除 我尝试了两种Xamarin.Forms.Color.Transparent.ToUIColor()和UIColor.Clear,但拇指仍然在那里。我打算只显示条,所以在我的xaml中将其设置为IsEnabled false。现在我只需要那个拇指图像消失:) 知道我做错了什么吗 这是iOS代码呈现程序: public class Slider_iOS : SliderR
Xamarin.Forms.Color.Transparent.ToUIColor()
和UIColor.Clear
,但拇指仍然在那里。我打算只显示条,所以在我的xaml中将其设置为IsEnabled false。现在我只需要那个拇指图像消失:)
知道我做错了什么吗
这是iOS代码呈现程序:
public class Slider_iOS : SliderRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
{
SetNativeControl(new MySlideriOS());
base.OnElementChanged(e);
}
}
public class MySlideriOS : UISlider
{
public MySlideriOS()
{
this.ThumbTintColor = UIColor.Clear;
this.HorizontalAlignment = UIControlContentHorizontalAlignment.Fill;
this.VerticalAlignment = UIControlContentVerticalAlignment.Fill;
}
public override CGRect TrackRectForBounds(CGRect forBounds)
{
CGRect rect = base.TrackRectForBounds(forBounds);
return new CGRect(rect.X, rect.Y, rect.Width, 10);
}
}
public class Slider\u iOS:SliderRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
SetNativeControl(新MySlideriOS());
基础。一个要素发生变化(e);
}
}
公共类MySlideriOS:UISlider
{
公共MySlideriOS()
{
this.ThumbTintColor=UIColor.Clear;
this.HorizontalAlignment=uicontrol内容HorizontalAlignment.Fill;
this.VerticalAlignment=uicontrol内容VerticalAlignment.Fill;
}
公共覆盖CGRect TrackRectForBounds(CGRect forBounds)
{
CGRect rect=base.TrackRectForBounds(forBounds);
返回新的CGRect(rect.X,rect.Y,rect.Width,10);
}
}
如果UIColor.Clear不起作用,您可以尝试设置一个透明图像,这样就可以了
sliderImage.SetThumbImage(UIImage.FromFile("transparentIcon.png"), UIControlState.Normal);
我已经运行了你的代码。我发现当界面初始化时,滑块的透明背景仍然存在,但他不会随着滑块移动 您可以尝试将
Control.thumbtinkColor
添加到此处
public class Slider_iOS : SliderRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
{
base.OnElementChanged(e);
Control.ThumbTintColor = UIColor.Clear; //add here
SetNativeControl(new MySlideriOS());
}
}
public class Slider\u iOS:SliderRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
Control.ThumbTintColor=UIColor.Clear;//添加到此处
SetNativeControl(新MySlideriOS());
}
}
你能提供一个错误的图像显示吗?你想显示什么?我试过了,但它仍然显示出你的直觉。如果我取消注释“SetNativeControl(new MySlideriOS());”,那么它可以工作,但是我没有获得按钮宽度功能OK,它显示出一点奇怪。是否添加Control.ThumbTintColor=UIColor.Clear
berforeSetNativeControl(新MySlideriOS())代码>像我的答案那样的代码?