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]