簡體   English   中英

如何從Xamarin Forms iOS中的自定義渲染器滑塊中刪除拇指?

[英]How to remove thumb from custom renderer slider in Xamarin forms iOS?

所以我創建了一個自定義渲染器滑塊,因為我想稍微調整一下樣式及其寬度。 我可以使用寬度就可以了,但是當我嘗試擺脫指頭時,它不會被移除。

我同時嘗試了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);
    }
}

如果UIColor.Clear不起作用,則可以嘗試設置透明圖像,這可以解決問題

sliderImage.SetThumbImage(UIImage.FromFile("transparentIcon.png"), UIControlState.Normal);

我已經運行了您的代碼。 我發現初始化接口時,滑塊的透明背景仍然存在,但是他不會隨滑塊一起移動。

您可以嘗試此操作,將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());
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM