2012-03-24 34 views
0

我有一個在該方法上繪製10像素邊框的視圖。 我需要更新邊框顏色,我使用[self setNeedsDisplay]來使其重繪 的視圖。 因爲我只需要更新我想使用的邊框:[self setNeedsDisplayInRect:rect]因此它只會繪製邊框。創建一個複雜的CGRect

我怎樣才能得到只有邊界與視圖的其他領域?

感謝 沙尼

回答

2

你不能因爲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; 
0

你可以讓周圍的邊框(上,右,下,左)的各第四部分CGRects,並與他們每個人的調用方法四倍。