• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-13 13:24:10 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

例如看看这个:

-(void)touchesMovedNSSet<UITouch *> *)touches withEventUIEvent *)event
{
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint touchPoint = [touch locationInView:self.view];
     path = [UIBezierPath bezierPathWithRect:CGRectMake(touchPoint.x, touchPoint.y, 1, 1)];

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

}

我尝试了什么: C

GRect topRect = CGRectMake(touchPoint.x,touchPoint.y, 10,10);
// Fill the rectangle with grey
[[UIColor redColor] setFill];
UIRectFill( topRect );
[self.view drawRect:topRect];

但它给了我错误:

<Error>: CGContextSetCompositeOperation: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and 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.

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

如果可能的话,请给一些提示。



Best Answer-推荐答案


任何绘图操作都必须在 view drawing cycle 内完成。 .您不能在任何时候绘制东西,只有在绘制 View 时才能这样做。

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

- (void)drawRectCGRect)rect {
    GRect topRect = CGRectMake(self.touchedPoint.x,touchedPoint.y, 10,10);
    // Fill the rectangle with grey
    [[UIColor redColor] setFill];
    UIRectFill( topRect );
    [self.view drawRect:topRect];
}

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

@property (nonatomic) CGPoint touchedPoint;

最后,在传递点详细信息后,您需要通过调用 setNeedsDisplay 告诉 View 它需要重绘。 :

((MyViewSubclass*)self.view).touchedPoint = touchPoint;
[self.view setNeedsDisplay];

关于ios - 是否可以更改特定 x 和 y 坐标的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34674554/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap