所以我创建了一个自定义渲染器滑块,因为我想调整一下样式及其宽度。我可以使用宽度就可以了,但是当我尝试摆脱指头时,它不会被移除。
我同时尝试了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);
}
}
答案 0 :(得分:1)
如果UIColor.Clear不起作用,则可以尝试设置一个透明图像,这应该可以解决问题
sliderImage.SetThumbImage(UIImage.FromFile("transparentIcon.png"), UIControlState.Normal);
答案 1 :(得分:0)
我已经运行了您的代码。我发现,初始化界面后,滑块的透明背景仍然存在,但他不会随幻灯片一起移动。
您可以尝试此操作,在此处添加Control.ThumbTintColor
。
public class Slider_iOS : SliderRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
{
base.OnElementChanged(e);
Control.ThumbTintColor = UIColor.Clear; //add here
SetNativeControl(new MySlideriOS());
}
}