如何在 Xamarin.iOS 中绘制圆角矩形?

Posted

技术标签:

【中文标题】如何在 Xamarin.iOS 中绘制圆角矩形?【英文标题】:How to draw a rounded rectangle in Xamarin.iOS? 【发布时间】:2017-06-10 18:43:17 【问题描述】:

我想绘制一个带圆角的矩形,但我对这个平台很陌生,它与例如 WPF 或 UWP 确实不同。

我看过 Objective-C 中的示例,但我不知道如何翻译成 Xamarin.ios

【问题讨论】:

【参考方案1】:

圆角填充矩形路径:

var rectanglePath = UIBezierPath.FromRoundedRect(new CGRect(0.0f, 0.0f, 200.0f, 100.0f), 50.0f);
UIColor.Red.SetFill();
rectanglePath.Fill();

使用 ImageContext 创建 UIImage:

UIGraphics.BeginImageContext(new CGSize(200.0f, 100.0f));
var rectanglePath = UIBezierPath.FromRoundedRect(new CGRect(0.0f, 0.0f, 200.0f, 100.0f), 50.0f);
UIColor.Red.SetFill();
rectanglePath.Fill();
var image = UIGraphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();

通过 UIView 子类:

public class RoundedBox : UIView

    public RoundedBox()
    
    

    public RoundedBox(Foundation.NSCoder coder) : base(coder)
    
    

    public RoundedBox(Foundation.NSObjectFlag t) : base(t)
    
    

    public RoundedBox(IntPtr handle) : base(handle)
    
    

    public RoundedBox(CoreGraphics.CGRect frame) : base(frame)
    
    

    public override void Draw(CGRect rect)
    
        var rectanglePath = UIBezierPath.FromRoundedRect(rect, 50.0f);
        UIColor.Red.SetFill();
        rectanglePath.Fill();
    

【讨论】:

非常感谢!以防万一,你能看看我关于绘制文本的另一个问题吗? ***.com/questions/44400322/…

以上是关于如何在 Xamarin.iOS 中绘制圆角矩形?的主要内容,如果未能解决你的问题,请参考以下文章

结构建模设计——Solidworks软件之草图绘制基础图形工具总结(绘制直线矩形圆槽圆弧圆角等)

结构建模设计——Solidworks软件之草图绘制基础图形工具总结(绘制直线矩形圆槽圆弧圆角等)

如何将文本添加到由圆分隔的圆角矩形中

IOS用CGContextRef画各种图形(文字圆直线弧线矩形扇形椭圆三角形圆角矩形贝塞尔曲线图片)(转)

iOS:贝塞尔曲线(UIBezierPath)-----Swift

如何在 Core Graphics / Quartz 2D 中绘制圆角矩形?