菜鸟教程小白 发表于 2022-12-11 20:25:25

objective-c - 类似 Canvas 的元素


                                            <p><p>我正在寻找在 iOS 应用程序中使用的“类似 Canvas ”的元素。 “类似 Canvas ”是指我想要一个可以在其上绘制基本形状(例如矩形、线条、文本或图像)的表面。我不需要 3D 或其他真正高级的东西——矩形和其他图像就足够了,如果需要,文本可以存储在图像中。</p>

<p>我无法想象没有这样的 API 可用,但是他们怎么调用它呢?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>使用 UIKit,用户看到并与之交互的一切本质上都是一个 View 。例如,一个按钮是一个 View ,一个表格 View 是一个 View ,等等。你的应用程序应该已经有一个主视图 Controller ,或者一个主窗口,它可以包含零个或多个 View 。只要您能够实现 <code>drawRect:</code> 方法,就可以在您创建的任何 View 上绘图。这是一个实现 <code>UIView</code> 子类的示例,您可以在其上使用 CoreGraphics 进行绘制:</p>

<pre><code>@interface MyView : UIView
@end

@implementation MyView

- (void)drawRect:(CGRect)dirtyRect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetRGBFillColor(context, 0, 0, 0, 1);
    // here, you can draw shapes, for example, a circle:
    CGContextFillEllipseInRect(context, CGContextMake(10, 10, 50, 50));
}

@end
</code></pre>

<p>然后,为了将 <code>MyView</code> 的实例添加到您的应用程序中,可以在界面生成器中拖入自定义 View 并将其类更改为 <code>MyView</code>,或者执行此操作在 ViewController 的 <code>viewDidLoad</code> 中:</p>

<pre><code>- (void)viewDidLoad {
    MyView * aView = [ initWithFrame:self.bounds];
    ;
#if __has_feautre(objc_arc) != 1
    ;
#endif
}
</code></pre>

<p>您可以从 <a href="http://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/Introduction/Introduction.html" rel="noreferrer noopener nofollow">Quartz 2D Programming Guide</a> 中了解更多关于 <code>drawRect</code> 方法可以做什么的信息。 .</p></p>
                                   
                                                <p style="font-size: 20px;">关于objective-c - 类似 Canvas 的元素,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/7946295/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/7946295/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: objective-c - 类似 Canvas 的元素