菜鸟教程小白 发表于 2022-12-13 00:05:03

ios - 如何在 UIView 中绘制具有特定角度的开放式三角形?


                                            <p><p>我被难住了,需要一些帮助。出于测试目的,我有一个通过 drawRect 绘制的 UIView(下面的代码)。我可以画一个特定角度的圆圈,但它是填充和闭合的。我需要它打开和抚摸。我目前正在使用 UIBezierPath 来执行此操作,但有更好的方法吗?我可以在 UIBezierPath 中绘制我想要的开放式三角形,但我无法指定我需要它的角度(下面的代码也是如此)。对此的任何帮助将不胜感激。谢谢。</p>

<p>下图是我希望它以特定角度绘制时的样子。</p>

<p> <img src="/image/Ue3JO.jpg" alt="enter image description here"/> </p>

<pre><code>#import &#34;AngleView.h&#34;
#define   DEGREES_TO_RADIANS(degrees)((M_PI * degrees)/ 180)
@implementation AngleView

-(void)drawRect:(CGRect)rect {

UIBezierPath *aPath = [UIBezierPath bezierPathWithArcCenter:CGPointZero
                                                   radius:50
                                                 startAngle:0
                                                   endAngle:DEGREES_TO_RADIANS(45)
                                                clockwise:NO];

;
}

@end
</code></pre>

<p>这是我如何在没有特定角度的情况下绘制它。</p>

<pre><code>UIBezierPath* bezierPath = ;
;
;
;
[ setStroke];
bezierPath.lineWidth = 1;
;
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以从同一点绘制两条单独的线,而不是尝试绘制一条线,您可以为其中一条线指定角度。 </p>

<pre><code>- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSaveGState(context);
    CGContextTranslateCTM(context, 0, 119.5);//here you can set originating point of line
    CGContextRotateCTM(context, -45 * M_PI / 180);//Change Angle here -45
    UIBezierPath* bezierPath = UIBezierPath.bezierPath;
    ;
    ;
    ;
    bezierPath.lineWidth = 1;
    ;
    CGContextRestoreGState(context);

    //Second UIBezierPath with 0 angle
    context = UIGraphicsGetCurrentContext();
    UIBezierPath* bezier2Path = UIBezierPath.bezierPath;
    ;
    ;
    ;
    bezier2Path.lineWidth = 1;
    ;
    CGContextRestoreGState(context);
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在 UIView 中绘制具有特定角度的开放式三角形?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24944898/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24944898/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在 UIView 中绘制具有特定角度的开放式三角形?