菜鸟教程小白 发表于 2022-12-13 13:24:10

ios - 是否可以更改特定 x 和 y 坐标的颜色?


                                            <p><p>例如看看这个:</p>

<pre><code>-(void)touchesMoved:(NSSet&lt;UITouch *&gt; *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [ anyObject];
    CGPoint touchPoint = ;
   path = ;

    NSLog(@&#34;Touch moving point =x : %f Touch moving point =y : %f&#34;, touchPoint.x, touchPoint.y);

}
</code></pre>

<p><strong>我尝试了什么:</strong>
C</p>

<pre><code>GRect topRect = CGRectMake(touchPoint.x,touchPoint.y, 10,10);
// Fill the rectangle with grey
[ setFill];
UIRectFill( topRect );
;
</code></pre>

<p><strong>但它给了我错误:</strong></p>

<blockquote>
<p>&lt;Error&gt;: CGContextSetCompositeOperation: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid contextand is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.</p>
</blockquote>

<p>当用户移动触摸时,我得到坐标并改变颜色。
当用户移动他们的手 x 和 y 坐标时,对于那个特定的地方我喜欢改变颜色。 </p>

<p>如果可能的话,请给一些提示。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>任何绘图操作都必须在 <a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/doc/uid/TP40006816-CH3-SW136" rel="noreferrer noopener nofollow">view drawing cycle</a> 内完成。 .您不能在任何时候绘制东西,只有在绘制 View 时才能这样做。</p>

<p>这意味着在你的 UIView 子类中覆盖 <code>drawRect:</code> 方法,如果你没有,那么你需要添加它:</p>

<pre><code>- (void)drawRect:(CGRect)rect {
    GRect topRect = CGRectMake(self.touchedPoint.x,touchedPoint.y, 10,10);
    // Fill the rectangle with grey
    [ setFill];
    UIRectFill( topRect );
    ;
}
</code></pre>

<p>下一步是将信息从您的 Controller (接收 <code>touchesMoved:</code> 消息的 Controller )传递给 View 。这可以通过 View 上的属性来完成:</p>

<pre><code>@property (nonatomic) CGPoint touchedPoint;
</code></pre>

<p>最后,在传递点详细信息后,您需要通过调用 <a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/instm/UIView/setNeedsDisplay" rel="noreferrer noopener nofollow">setNeedsDisplay</a> 告诉 View 它需要重绘。 :</p>

<pre><code>((MyViewSubclass*)self.view).touchedPoint = touchPoint;
;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 是否可以更改特定 x 和 y 坐标的颜色?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/34674554/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/34674554/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 是否可以更改特定 x 和 y 坐标的颜色?