在UIView中约束rectDraw

时间:2014-07-04 23:37:20

标签: ios objective-c uiview drawrect

我有一个UIView,它继承自定义的UIView子类,其中drawRect方法如下所示:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetStrokeColorWithColor(context, [[UIColor grayColor] CGColor]);
    CGContextSetLineWidth(context, .85);
    CGContextMoveToPoint(context, 10.0, 10.0);
    CGContextAddLineToPoint(context, 310.0, 10.0);
    CGContextDrawPath(context, kCGPathStroke);
}

我在UIView中使用它,其中视图尺寸为:320宽度和10高度。问题是..我画线的宽度只有.85,但是我不能将UIView的高度降低到10以下,如果没有线条消失,我怎样才能让线条在画面的边界上画出来。的UIView?

1 个答案:

答案 0 :(得分:2)

"线宽"与此事无关。你了解笛卡尔坐标是如何工作的吗?看看你正在做什么。您正在从{10,10}{310,10}画一条线。所以它的y坐标是10。如果视图的高度小于10,那么它将低于视图的底部,您将无法看到该行。

因此,如果视图的高度小于10,请将10设为较小的数字。您可以通过查看rect - 它的用途来了解视图的高度。

一般来说,你可能根本不应该对这些数字进行硬编码;你应该根据传入的rect值来计算它们。