我目前正在开发一款适用于Xamarin Ios的应用程序,我正在努力寻找一种方法,只需将一个圆形边框应用于UIButton类型的按钮。
答案 0 :(得分:5)
在您的UIButton子类中,覆盖LayoutSubviews
方法并添加一个掩码:
public override void LayoutSubviews()
{
var maskingShapeLayer = new CAShapeLayer()
{
Path = UIBezierPath.FromRoundedRect(Bounds, UIRectCorner.BottomLeft | UIRectCorner.TopLeft, new CGSize(20, 20)).CGPath
};
Layer.Mask = maskingShapeLayer;
base.LayoutSubviews();
}
答案 1 :(得分:4)
你可以这样做(IOS 11.0 +):
yourLabel.Layer.CornerRadius = 5; // set radius on all corners
yourLabel.ClipsToBounds = true;
yourLabel.Layer.MaskedCorners = (CoreAnimation.CACornerMask)1; // cast the correct value as CACornerMask enum
由于CoreAnimation.CACornerMask是一个标记为Flags的枚举,并且只定义了4个值(1,2,4,8),我假设您可以在那里进行按位运算,但这对我来说并不起作用。 。 因此,唯一的方法是使用正确的值来投射它:
yourLabel.Layer.MaskedCorners = (CoreAnimation.CACornerMask)5; //top & bottom left corners rounded
根据您想要舍入的角落从此列表中选择您的值:
这就是诀窍......