菜鸟教程小白 发表于 2022-12-12 22:15:59

objective-c - 从 UIViewController 绘制虚线


                                            <p><p>我有一个 UIViewController,里面有一个 UIView,我想在上面画一条直线。执行此操作的最简单和高效的方法是什么?我该怎么做呢?它只是一条宽度为 150 的灰色水平虚线。我环顾四周,似乎使用
CGContextSetLineDash 是解决方案,这是我目前所拥有的:</p>

<pre><code>-(void) drawRect:(CGRect) rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 100);
CGFloat dashes[] = {1,1};
CGContextSetLineDash(context, 2.0, dashes, 2);
CGContextStrokePath(context);
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>CGContextStrokePath</code> 绘制 <em>current</em> 路径,但是,您从不向上下文添加任何路径,因此不会绘制任何内容。</p>

<p>在您的 <code>CGContextStrokePath</code> 调用之前添加以下两行,您应该会看到一些内容:</p>

<pre><code>CGContextMoveToPoint(context, 0, self.bounds.size.height * 0.5);
CGContextAddLineToPoint(context, self.bounds.size.width, self.bounds.size.height * 0.5);
</code></pre>

<p>如果您还没有设置描边颜色,您还应该添加如下内容(50% 灰色):</p>

<pre><code>CGContextSetRGBStrokeColor(context, 0.5, 0.5, 0.5, 1.0);
</code></pre>

<p>我不确定结果是否真的是您想要的,带有 {1, 1} 图案的 100 点虚线看起来更像是带有细条纹图案的矩形,而不是虚线。如果您希望您的点是圆圈,则必须以某种循环手动绘制它们。</p></p>
                                   
                                                <p style="font-size: 20px;">关于objective-c - 从 UIViewController 绘制虚线,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/11784057/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/11784057/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: objective-c - 从 UIViewController 绘制虚线