【发布时间】:2012-03-24 14:05:17
【问题描述】:
我在该方法上绘制了一个边框为 10 像素的视图。
我需要更新边框颜色并使用[self setNeedsDisplay] 使其重绘
风景。
因为我只需要更新我想要使用的边框:[self setNeedsDisplayInRect:rect] 所以它只会绘制边框。
我怎样才能得到一个只有边框的矩形而不包括视图的其他区域?
谢谢 沙尼
【问题讨论】:
标签: ios cgrect setneedsdisplayinrect
我在该方法上绘制了一个边框为 10 像素的视图。
我需要更新边框颜色并使用[self setNeedsDisplay] 使其重绘
风景。
因为我只需要更新我想要使用的边框:[self setNeedsDisplayInRect:rect] 所以它只会绘制边框。
我怎样才能得到一个只有边框的矩形而不包括视图的其他区域?
谢谢 沙尼
【问题讨论】:
标签: ios cgrect setneedsdisplayinrect
你不能因为CGRect是矩形的,所以它是一个不能有洞的凸形。
但是你可以把边框分解成四个矩形,调用[self setNeedsDisplayInRect:rect]四次。
另外,如果你导入QuartzCore,你或许可以使用视图层的borderColor属性:
#import <QuartzCore/QuartzCore.h>
// ...
view.layer.borderWidth = 10;
view.layer.borderColor = [UIColor redColor].CGColor;
// And to change it later
view.layer.borderColor = [UIColor greenColor].CGColor;
【讨论】:
您可以在边框的每个部分(顶部、右侧、底部和左侧)周围获得四个 CGRect,并分别调用该方法四次。
【讨论】: