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 "AngleView.h"
#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]