菜鸟教程小白 发表于 2022-12-12 18:47:17

ios - 使用条形码角创建 CGRect?


                                            <p><p>我正在尝试使用 iOS 7 的最新条形码 api 在检测到的条形码上绘制一个红色矩形。我已经设法拉入边界和角落,但我不太清楚如何获取这些信息并将其应用到我的 View 中。</p>

<p>在 viewDidLoad 方法中,我定义了一旦找到我将用来覆盖条形码的 View :</p>

<pre><code>    //Initialize Laser View
    laserView = [ init];
    laserView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleBottomMargin;
    laserView.layer.borderColor = .CGColor;
    laserView.layer.borderWidth = 2;
    ;
</code></pre>

<p>在 didOutputMetadataObjects 中,我准备了激光 View 并拉入条形码边界和角:</p>

<pre><code>//Prepare Laser View&#39;s frame
CGRect laser = CGRectZero;

laser = barcodeObject.bounds;
NSLog(@&#34;Bounds: %@&#34;, NSStringFromCGRect(barcodeObject.bounds));
NSLog(@&#34;Frame: %@&#34;, barcodeObject.corners);

//Update Laser
laserView.frame = laser;
</code></pre>

<p>在我最近的一次运行中,我得到了:<code>{{7.0565414, 314.25}, {265.26062, 1.499999}}</code>
对于我得到的角落:</p>

<pre><code> (

    {
      X = &#34;7.056541&#34;;
      Y = &#34;314.25&#34;;
    },
      {
      X = &#34;7.056541&#34;;
      Y = &#34;315.75&#34;;
    },
      {
      X = &#34;272.3172&#34;;
      Y = &#34;315.75&#34;;
    },
      {
      X = &#34;272.3172&#34;;
      Y = &#34;314.25&#34;;
    }
)
</code></pre>

<p>我希望能够将 cgrect 紧紧地包裹在条形码周围。这是我正在尝试做的一个示例:</p>

<p> <img src="/image/hoDrn.png" alt="enter image description here"/> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您需要根据这些角构造一个 <code>CGPath</code> 或 <code>UIBezierPath</code> 路径,然后绘制路径。</p>

<ul>
<li>使用 <code>CGPath</code> 方法,使用 <code>CGPathCreateMutable</code> 创建路径。创建路径,使用<code>CGPathMoveToPoint</code>设置起点,然后使用<code>CGPathAddLineToPoint</code>从那里依次移动到每个角落。完成后,您可以使用带有 <code>CAShapeLayer</code> 的路径。将该层添加为 View 中的子层。</li>
<li>使用 <code>UIBezierPath</code>,遵循与使用 <code>CGPath</code> 相同的一般方法。使用 <code>moveToPoint:</code> 开始并使用 <code>addLineToPoint:</code> 绘制形状。像往常一样绘制路径(通常在 View 中的 <code>drawRect</code> 中)。</li>
</ul></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用条形码角创建 CGRect?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/21712632/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/21712632/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用条形码角创建 CGRect?