【问题标题】:Debugging a UIBezierPath调试 UIBezierPath
【发布时间】:2012-01-23 17:11:08
【问题描述】:

我正在努力显示我在代码中生成的UIBezierPath,因此在尝试调试它时,我想打印它所绘制的坐标。我在任何地方都找不到这种技术。鉴于下面的代码,有人可以分享这个吗?

谢谢

UIBezierPath* beizerPath2 = [UIBezierPath bezierPath];
[beizerPath2 moveToPoint:CGPointMake(0.0, 167)];    
[beizerPath2 addLineToPoint:CGPointMake(100, 40)]; 
[beizerPath2 addLineToPoint:CGPointMake(200, 70)];    
[beizerPath2 addLineToPoint:CGPointMake(300, 30)];    
[beizerPath2 addLineToPoint:CGPointMake(320, 30)];    
[beizerPath2 addLineToPoint:CGPointMake(320, 167)];    
[beizerPath2 closePath];

CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.path = [beizerPath2 CGPath];

//print Bezier/Path co-ordinates here.

【问题讨论】:

    标签: objective-c ios uibezierpath


    【解决方案1】:

    不确定您所说的“绘制坐标”是什么意思。您可以使用 -bounds 方法获取路径的最小边界矩形。

    当你在调试并想使用 NSLog() 时,也不要忽视非常有用的 NSString 宏,例如 NSStringFromCGRect(),例如

    NSLog(@"%@", NSStringFromCGRect([path bounds]));
    

    如果我误解了你的问题,请澄清。

    【讨论】:

    • 我认为你的问题是荒谬的。路径是可以包含无限关键(即转折)点的矢量对象(例如,考虑包含圆的路径)。在绘制路径之前,您所能拥有的只是一个抽象表示,尽管正如我所指出的那样,您 can 可以获得最小边界矩形。也许你应该解释一下你要调试什么问题——你可能找错了树。
    • 是的,我认为可能是这种情况,并且定义的点(上方)消失在形状中。
    猜你喜欢
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多