Gav*_*and 5 c# uitableview xamarin.ios ios xamarin
我正在使用当前版本的Xamarin.iOS和C#开发一个iPad应用程序,我正在尝试创建一个UITableView只有两个角(右上角和右下角)四舍五入的角色.我知道如何通过设置myTable.Layer.CornerRadius = 6f;但不知道如何只围绕其中的两个来使所有角落四舍五入.我环顾四周,但只能看到Objective-C的答案.这就是我目前所拥有的:
private UIView GetModalRowHeaderView2(RectangleF bounds)
{
UIView view = new UIView(bounds);
view.BackgroundColor = UIColor.Gray;
string[] tableItems = new string[] {"Item One","Item Two","Item Three"};
UITableView myTable = new UITableView(new RectangleF(0, 20, bounds.Width, bounds.Height - 40), UITableViewStyle.Plain);
myTable.SeparatorInset = UIEdgeInsets.Zero;
myTable.ScrollEnabled = false;
myTable.Source = new TableSource(tableItems);
// Rounds all corners
myTable.Layer.CornerRadius = 6f;
view.Add(myTable);
return view;
}
Run Code Online (Sandbox Code Playgroud)
任何想法我怎么能改变这只到圆角的两个角落?
谢谢,
小智 6
从 iOS 11 开始,有一个名为 的新属性:
例如 3 给了我两个顶角圆
view.Layer.MaskedCorners = (CoreAnimation.CACornerMask)3;
view.Layer.CornerRadius = 15f;
Run Code Online (Sandbox Code Playgroud)
您需要使用遮罩层.在我的Github回购中,我有一个带有圆角的矩形视图的 Xamarin.iOS代码.您可以将此作为开始.
摘自代码:
UIBezierPath maskPath = UIBezierPath.FromRoundedRect (this.Bounds, this.eRoundedCorners, new SizeF (this.fCornerRadius, this.fCornerRadius));
CAShapeLayer maskLayer = new CAShapeLayer ();
maskLayer.Frame = this.Bounds;
maskLayer.Path = maskPath.CGPath;
// Set the newly created shape layer as the mask for the image view's layer
this.Layer.Mask = maskLayer;
Run Code Online (Sandbox Code Playgroud)