菜鸟教程小白 发表于 2022-12-12 13:07:26

iphone - 在 drawRect 方法中传递参数更改统计信息


                                            <p><p>我在将参数传递给我的 drawRect 方法时遇到了问题。
它改变了我在方法中给定的参数。</p>

<p>当我直接在drawRect中设置矩形框时它工作正常,所以一定有问题
传递参数。</p>

<p>例如它改变
所以我的代码是这样的。</p>

<p>ServiceAppViewController.m</p>

<pre><code>-(void) initTransformBoxes{
TransformBox *transform = [ initWithFrame:CGRectMake(20, _transformArrowView.frame.origin.y+65,                                                                      _transformArrowView.frame.size.width,120)];

];

;
;


}

}
</code></pre>

<p>TransformBox.m</p>

<pre><code>-(void) drawRect:(CGRect)rect{
CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context, .CGColor);

//but when I do it hard wired it works?
CGRect rectangle = CGRectMake(0, 0, 20, 20);
CGContextAddRect(context,rectangle);
//instead of this
//    CGContextAddRect(context,rect);

CGContextStrokePath(context);
}
</code></pre>

<p>另一个问题是,我是否可以制作一个静态的 drawRect 方法?
我试图覆盖 .h 文件中的 drawRect 但它从未被调用过?</p>

<p>提前致谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你不应该调用 <code>;</code></p>

<p><code>drawRect:</code>方法在 View 可见时自动调用,<code>rect</code>参数其实就是 View 的边框。</p>

<p>如果要将参数传递给要绘制的 View ,请将其作为属性传递给 <code>TransformBox</code>View 。 </p>

<p>当你需要改变它时(在你添加到父 View 之后)你使用</p>

<pre><code>;
;
</code></pre>

<p>drawRect 会自动被调用。在您的 drawRect 方法中使用该属性。</p>

<p>ServiceAppViewController.m</p>

<pre><code>-(void) initTransformBoxes
{
    TransformBox *transform = [ initWithFrame:CGRectMake(20, _transformArrowView.frame.origin.y + 65,                                                                      _transformArrowView.frame.size.width, 120)];

    ];

    ;
    ;
}
</code></pre>

<p><code>drawRect:</code>会在 View 添加后被调用。</p>

<p>TransformBox.m</p>

<pre><code>-(void) drawRect:(CGRect)rect{
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetLineWidth(context, 2.0);

    CGContextSetStrokeColorWithColor(context, .CGColor);

    CGRect rectangle = ;
    CGContextAddRect(context,rectangle);

    CGContextStrokePath(context);
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 在 drawRect 方法中传递参数更改统计信息,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/17926328/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/17926328/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 在 drawRect 方法中传递参数更改统计信息