Xamarin自定义渲染器圆角导致2个边框

时间:2018-09-12 09:01:59

标签: xamarin.forms xamarin.ios custom-renderer

我使用自定义渲染器在iOS上创建了圆角:

add_filter( 'woocommerce_product_single_add_to_cart_text', 'single_add_to_card_lable' );
function single_add_to_card_lable() {
        return __( 'Add to my cart', 'woocommerce' );
}

这正在起作用;并给出以下结果:

Rounded corners

但是,如果仔细看,日期和时间选择器周围有2个边框。我添加了一个边框,并添加了“默认”边框。

这仅在DatePicker,TimePicker和Picker中发生。不适用于编辑器或输入。

问题: 为什么有2个边界?以及如何删除“默认”边框?

1 个答案:

答案 0 :(得分:1)

尝试将以下代码添加到您的方法中:

if (Control != null)
  {
    Control.TextAlignment = UIKit.UITextAlignment.Center;
    Control.BackgroundColor = Color.FromHex(Consts.PICKER_BACKGROUND_COLOR).ToUIColor();
    Control.TextColor = Color.FromHex(Consts.PICKER_TEXT_COLOR).ToUIColor();
    Control.Layer.MasksToBounds=true; //It is important
        ... 
  }
  

Control.Layer.MasksToBounds = true;

表示子图层是否切割了图层边界,默认值为false,将其设置为true将会删除多余的图层。

我使用了上面的代码,效果很好。